Наследование позволяет избегать дублирование кода и данных за счет возможности создания производных классов.
//базовый класс
Class CRectangle
{
Private:
Int count;
Protected:
Int left;
Int right;
Int top;
Int bottom;
Public:
Void Drow();
};
//производный класс
Class CBlock : public CRectangle
{
};
Public – наследование открытого типа, открытые поля и методы базового класса (метод Drow()) переносятся в производный как открытые; закрытые (count) – как закрытые, а защищенные (left, right, top, bottom) – как защищенные, т.е к защищенным полям можно обращаться как в самом классе, и во всех производных классах, в других частях программы обращаться нельзя.
//производный класс
Class Csquare : private CRectangle
{
};
Private - наследование закрытого типа, открытые поля и методы базового класса (метод Drow()) переносятся в производный как открытые; закрытые (count) – как закрытые, а защищенные (left, right, top, bottom) – как закрытые.
В С++ возможно как одиночное так множественное наследование (класс наследуется более чем от одного класса), а в Java и в С# множественное наследование запрещено.
Преимущества наследования.
- позволяет избежать дублирование кода,
- позволяет создать модель взаимоотношений объектов в предметной области.