ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 9) онлайн

Резюме

Класс, называемый производным классом, может наследовать возможности дру- гого класса, называемого базовым классом. При этом в производном классе могут быть свои собственные возможности, так как он является более специализиро- ванной версией базового класса. Наследование предоставляет эффективный спо- соб расширения возможностей существующих классов и разработки программ с использованием иерархических связей между классами.

Важным вопросом является доступность членов базового класса для методов производных классов и объектов производных классов. К полям и методам ба- зового класса, объявленным как protected, могут иметь доступ только методы производного класса. Объекты внешних классов, включая сам производный класс, в этом случае доступа к базовому классу не имеют. Классы могут быть общими и частными производными базового класса. Объекты общего производ- ного класса имеют доступ к членам базового класса, объявленным как public, а объекты частного производного класса доступа к ним не имеют.

Класс может быть производным более чем одного базового класса. Этот слу- чай называется множественным наследованием. Также класс может содержаться внутри другого класса.

В диаграммах UML наследование называют обобщением. Оно представляет- ся в виде треугольной стрелки, указывающей на базовый класс.

Включение — это взаимоотношение типа «имеет» или «является частью», при этом один класс содержит объекты другого класса. Включение представля- ется на диаграммах UML стрелкой в форме ромба, показывающей на целую часть пары часть—целое. Композиция — это более сложная форма объединения. На диаграммах она показывается так же, но стрелка закрашена.

Наследование позволяет использовать код программ повторно: в производ- ном классе можно расширить возможности базового класса без его модифика- ции, даже не имея доступа к его коду. Это приводит к появлению гибкости в процессе разработки программного обеспечения и расширению роли программ- ных разработчиков.

 

40