Важнейшим свойством ООП является наследование. Например, есть класс с определенными свойствами. В целом он нас устраивает, но необходимо добавить некоторую функциональность. Можно создать новый класс на основе существующего через наследование. Исходный класс называют предок/родитель/базовый класс/parent, а новый класс - наследник/потомок/производный класс/derived/child.
Производный класс обладает всеми свойствами и методами предка (он их унаследовал), плюс добавляются новые, может быть базовым для других классов. Так строится иерархия классов – важное понятие ООП.
При необходимости в производном классе можно перекрыть (переопределить) свойства и методы базового класса.
Форма записи заголовка производного класса:
class <наследник> : <режим доступа> <базовый класс> {<…>}
class B : public A // класс B наследует классу A, класс B выведен из A
{
// реализация B, расширяющая возможности А
}
Режимы доступа: внешнее, защищенное и внутреннее наследование:
Режим доступа public – внешнее наследование - интерфейс базового класса (раздел public) становится внешним интерфейсом производного класса (применяется чаще всего).
Режим доступа protected – защищенное наследование - внешний и защищенный разделы базового класса становится защищеными разделами производного класса, т.е. доступны только при следующем наследовании.
Режим доступа private – внутреннее наследование - внешний и защищенный разделы базового класса становится внутренними разделами производного класса, недоступны снаружи.