Это фундаментальное понятие ООП, которое позволяет одному классу (производный или дочерний класс) наследовать свойства и методы другого класса (базовый или родительский класс). Наследование позволяет расширять или модифицировать функционал уже существующих классов без их повторного написания.
🚩Основные аспекты
🟠Повторное использование кода
Позволяет производным классам использовать код базового класса. Это способствует снижению дублирования кода и увеличивает его повторное использование.
🟠Расширяемость
Делает систему более гибкой, так как позволяет создавать новые классы на основе уже существующих. Это помогает в адаптации и расширении функциональности системы.
🟠Иерархия
Вводит естественную организацию, создавая иерархическую структуру классов. Это упрощает понимание отношений между различными классами и их взаимодействия.
🟠Полиморфизм
Является ключом к полиморфизму, где методы производного класса могут переопределять методы базового класса. Это позволяет использовать производные объекты вместо базовых объектов, что делает программу более модульной.
🚩Типы
🟠Одиночное наследование
Класс наследуется от одного базового класса.
🟠Множественное наследование
Класс может наследоваться от более чем одного класса. Не все языки поддерживают множественное наследование из-за сложности разрешения различных аспектов, таких как ромбовидное наследование (diamond problem).
🟠Многоуровневое наследование
Формируется когда класс наследуется от другого производного класса, формируя многоуровневую структуру.
#include <iostream>
using namespace std;
// Базовый класс
class Animal {
public:
void eat() {
cout << "I can eat!" << endl;
}
};
// Производный класс
class Dog : public Animal {
public:
void bark() {
cout << "I can bark! Woof woof!" << endl;
}
};
int main() {
Dog myDog;
myDog.eat(); // Вызов метода базового класса
myDog.bark(); // Вызов метода производного класса
return 0;
}
Ставь 👍 и забирай 📚 Базу знаний