Здравствуйте, McSeem2, Вы писали:
MS>Следующим шагом будет осознание, что и у просто наследования практическая ценость весьма сомнительна. Имеется единственный случай, когда наследование оправдано — это перегрузка виртуальных функций. Но это следовало бы назвать не наследованием, а специализацией. А тот случай, когда есть класс String, не имеющий ни одной виртуальной функции, и от него образуется некий производный класс с расширенной функциональностью, то это ересь. Это в результате приводит к гораздо большим проблемам, чем дает практической ценности. Наследование применимо к интерфейсам, но это тоже не наследование, это — имплементация.
Наследования, специализация, это вопрос терминологии. И термин наследование, имхо, вполне адекватно и понятно отражает данную сущность. А вопрос где оно оправдано, а где нет, достаточно спорный. Кому не нравится, вполне может выбрать другой способ реализации, благо подавляющее большинство задач можно решить не одним, и даже не двумя методами.