Синтаксис наследования Синтаксис наследования довольно прост. Давайте в качестве примера возьмём
определение класса Человек. Далее демонстрируется типичное утверждение
наследования:
Класс слева от двоеточия, это новый производный класс. А класс справа от
двоеточия, это базовый класс.
Что делает наследование? Идея наследования заключается в том, чтобы производный класс принимал все
характеристики (элементы данных, функции-члены) базового класса, а затем
расширял их с ещё большей функциональностью. Например, все млекопитающие
обладают функцией breathe() (дышать). Наследуясь от класса Млекопитающих,
классы Собака, Кошка и Человек автоматически приобретают возможность дышать
(breathe()).
Наследование сокращает повторение кода, так как нам не надо повторно
осуществлять общую функциональность (такую как breathe()) для Собаки, Кошки и
Человека. Вместо этого, каждый из этих производных классов использует вместе с
остальными функцию breathe(), определённую в классе Млекопитающее.
Тем не менее, только класс Человек имеет функцию-член attack(). Это означает, что
в нашем коде только класс Человек нападает, атакует. Функция cat.attack()
вызовет ошибку компилятора, если только вы не напишете функцию-член attack()
внутри class Cat (или в class Mammal).