Ответ
Наследование — это один из четырёх основных принципов объектно-ориентированного программирования (ООП), который позволяет одному классу (дочернему или производному) наследовать поля и методы другого класса (родительского или базового). Это создаёт иерархию «является» (is-a) и способствует повторному использованию кода.
Ключевые цели и преимущества:
- Повторное использование кода: Не нужно дублировать общую логику в родственных классах.
- Расширяемость: Дочерний класс может добавлять новое поведение или переопределять унаследованное.
- Полиморфизм: Объекты дочернего класса могут использоваться там, где ожидается объект родительского класса.
Основные концепции:
- Переопределение метода (Method Overriding): Дочерний класс предоставляет свою конкретную реализацию метода, уже объявленного в родительском классе.
- Спецификаторы доступа:
public— доступ отовсюду.protected— доступ из самого класса и его наследников.private— доступ только из самого класса.
Пример на C#:
// Базовый класс
public class Vehicle
{
public string Brand { get; set; }
public virtual void Move()
{
Console.WriteLine($"{Brand} is moving in some way.");
}
}
// Дочерний класс, наследующий Vehicle
public class Car : Vehicle
{
// Переопределение метода
public override void Move()
{
Console.WriteLine($"{Brand} car is driving on the road.");
}
// Новый метод, специфичный для Car
public void Honk() => Console.WriteLine("Beep beep!");
}
// Использование
Vehicle myVehicle = new Car { Brand = "Toyota" };
myVehicle.Move(); // Вывод: "Toyota car is driving on the road."
// Демонстрация полиморфизма: переменная типа Vehicle,
// но вызывается переопределённый метод Car.Move()
Важно: В языках вроде C# и Java поддерживается одиночное наследование классов (один родитель), но множественная реализация интерфейсов.