кто действительно шарит ООП
От: DVV  
Дата: 15.05.03 21:52
Оценка:
Вот на лекции задали такой вопрос.
Реализацию(тоесть закрытое наследование) можно свести(переделать) к иерархии объектов.
А вот с открытым так сделать нельзяЖ)
Так вот почем???
thnx anyway

17.05.03 09:13: Перенесено модератором из 'C/C++' в Проектирование. — ХД
Re: кто действительно шарит ООП
От: Alvin  
Дата: 15.05.03 22:18
Оценка:
Здравствуйте, DVV, Вы писали:

DVV>Вот на лекции задали такой вопрос.

DVV>Реализацию(тоесть закрытое наследование) можно свести(переделать) к иерархии объектов.
DVV>А вот с открытым так сделать нельзяЖ)
DVV>Так вот почем???

Хм, по определению (Как можно доказать что-нибудь? Одним из трех способов: по определению, от противного и конструктивно.)

Так вот: если класс A открыто наследует класс AParent, то это означает, что любой A _является_ и ParentA (это свойство является одним из основных в ООП). При закрытом наследовании же, A с точки зрения сторонних наблюдателей _не является_ ParentA (так как нельзя вызывать методы/использовать переменные ParentA из-за защиты доступа). А если мы хотим от A функциональности, смахивающей на ParentA, мы можем переопределить интерфейс (возможно, с изменениями — паттерны Adapter/Decorator/Bridge) и завести внутри у себя объект ParentA, которому и перенаправлять все запросы...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.