Короткий ответ
Наследование — механизм объектно-ориентированного программирования, при котором новый дочерний класс строится на основе родительского и наследует его атрибуты и методы. Дочерний класс может добавлять собственные члены и переопределять унаследованные, а базовый класс указывается в скобках после имени потомка.
Как это работает подробнее
- Термины. Класс, от которого наследуют, называют базовым или родительским, а новый — производным, дочерним или подклассом.
- Синтаксис. Наследование задаётся именем родителя в скобках после имени потомка, например
class Dog(Animal). - Переиспользование. Потомок получает все атрибуты и методы родителя, а изменения в родительском классе автоматически распространяются на наследников.
- Виды наследования. Python поддерживает и одиночное, и множественное наследование, в отличие от ряда других языков.
Пример кода
Базовый класс Animal и подкласс Dog
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
return '...'
class Dog(Animal): # Dog наследует Animal
def speak(self): # переопределяем метод родителя
return 'Woof!'
rex = Dog('Rex')
print(rex.name) # Rex — атрибут унаследован
print(rex.speak()) # Woof!Что использовать на практике
- Общие члены. Выноси в базовый класс атрибуты и методы, общие для всех потомков, чтобы не дублировать код.
- Переопределение. Когда поведение потомка отличается, переопределяй метод родителя, сохраняя его сигнатуру.
- Логика родителя. Если внутри переопределённого метода нужна реализация родителя, обращайся к ней через
super().