В качестве иллюстрации рассмотрим определение
В качестве иллюстрации рассмотрим определение двух классов, используя неформальный синтаксис публикаций:
Class Mother { 'Раздел атрибутов Chromosome XX; 'Другие объявления свойств и методов .... } Class Father { 'Раздел атрибутов Chromosome XY; 'Другие объявления свойств и методов .... }
В классы Mother и Father встроены объекты XX и XY ранее определенного класса Chromosome. Используя множественное наследование, можно создать новый класс, наследующий свойства и поведение его родителей:
Class Child : Parents Mother, Father { 'Наследует свойства XX, XY и другие свойства и методы своих родителей 'Раздел атрибутов String NewProperty; 'Другие новые свойства и методы }
Рассмотрим теперь создание класса, основанное на встраивании объектов:
Class MyChild { 'Раздел атрибутов Father F; Mother M; String NewProperty; 'Другие новые свойства и методы }
Вот объявление объектов этих классов:
Child Son; MyChild Daughter;
Объекты Son и Daughter обладают одинаковыми свойствами и поведением. И в этом случае мы будем говорить, что классы Child и MyChild подобны. Есть некоторая синтаксическая разница - у объекта Son свойства XX и XY доступны непосредственно, а у объекта Daughter они доступны через вложенные объекты F и M, так что в первом случае мы пишем Son.XX и Son.XY, а во втором - Daughter.F.XY и Daughter.M.XX.
Подведем некоторые итоги: два производных класса, построенных на основе наследования и встраивания, можно сделать подобными, если только в порожденных классах не переопределяются методы родительских классов. При этом подобие означает, что объекты имеют одинаковые свойства и поведение. Заметьте: подобие не означает полного тождества объектов. Они имеют разную структуру построения и в связи с этим - разный синтаксис обращения к одним и тем же свойствам и методам.
Если происходит переопределение родительских методов в производном классе, то в общем случае, используя встраивание, нельзя построить класс, подобный наследуемому. В нашем примере с классами Child и MyChild встраивание используется при построении класса MyChild как альтернатива наследованию.
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий