Сподіваємось, не надто академічний ...
Скажімо, мені потрібні справжні та складні номери у моїй бібліотеці SW.
На основі співвідношення is-a (або тут ), дійсне число - це комплексне число, де b у уявній частині комплексного числа просто 0.
З іншого боку, моя реалізація полягала б у тому, щоб дитина продовжувала батьківську, тому в батьківському RealNumber я мав би реальну частину, і дочірнє ComplexNumber додало б уявне мистецтво.
Також існує думка, що успадкування - це зло .
Я пригадую, як вчора, коли я навчався ООП в університеті, мій професор сказав, що це не гарний приклад успадкування, оскільки абсолютна величина цих двох обчислюється по-різному (але для цього у нас є метод перевантаження / поліморфізм, правда?). .
Мій досвід полягає в тому, що ми часто використовуємо спадщину для вирішення проблеми DRY, в результаті у нас часто є ієрархічні штучні абстрактні класи (у нас часто виникають проблеми знайти імена, оскільки вони не представляють об'єкти з реального світу).