Наследование через включение
Данный вариант наследования используется когда один классимеет в себе (включает в себя) другой класс. Для примера, у нас есть класс Computer и класс Office, компьютер должен находится в офисе. Классическое наследование не логично использовать, потому что компьютер не является офисом и офис не является компьютером. Необходимо чтобы компьютер был в офисе. Наследование через включение реализуется следующим образом: То есть один класс создается внутри другого класса. Свойство класса Computer внутри класса Office (то есть НЕ внутри самого класса Computer) создается следующим образом: Уровень доступа свойства должен быть не меньше чем уровень доступа класса (если класс – private, то свойство public не сможет быть). ВАЖНО: при использовании такого типа наследования, если мы объявили новый класс внутри другого – то необходимо создавать базовый конструктор, в котором явно инициализировать свойства (так сказать, чтобы компъютер понял, что свойство относится к классу Computer): Особенностью данного типа наследования ялвяется возможность обратится к объекту класса Computer через свойство, созданное в классе Office: Польза данного типа наследования состоит в том, что мы можем отнести методы и свойства, которые касаются именно компъютера в отдельный класс, чтобы когда мы не работаем с данным классом, то не высвечивались и не мешались его объекты. Представим, что нам необходимо использовать класс Computer в других классах, например: House, Hospital, School. Для этого мы можем сделать класс Computer независимым, то есть вынести его определение за пределы класса Office. Чтобы сделать это мы просто вырезаем класс Computer и делаем его отдельным классом.
|