Ответ
Наследование — это один из ключевых принципов объектно-ориентированного программирования (ООП), который позволяет создавать новый класс (потомок, дочерний класс) на основе существующего (родитель, базовый класс).
Основная цель — повторное использование кода (code reuse). Класс-потомок автоматически получает (наследует) все атрибуты и методы своего родителя, что избавляет от необходимости их дублировать.
Ключевые преимущества:
- Иерархия и структура: Позволяет выстраивать логические иерархии классов по принципу "is-a" (является). Например,
Dog
являетсяAnimal
. - Расширяемость: Можно добавлять в дочерний класс новый функционал, не изменяя родительский.
- Полиморфизм: Позволяет переопределять (override) методы родителя, изменяя их поведение в дочернем классе.
Пример на Python:
# Базовый (родительский) класс
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
# Этот метод предполагается к переопределению
raise NotImplementedError("Подкласс должен реализовать этот метод")
# Дочерний класс, наследуется от Animal
class Dog(Animal):
# Переопределяем метод speak
def speak(self):
return f"{self.name} говорит Гав!"
# Другой дочерний класс
class Cat(Animal):
def speak(self):
return f"{self.name} говорит Мяу!"
# Использование
dog = Dog("Рекс")
cat = Cat("Мурка")
print(dog.speak()) # Вывод: Рекс говорит Гав!
print(cat.speak()) # Вывод: Мурка говорит Мяу!
Для вызова метода родительского класса из дочернего используется функция super()
.