Найти тему
IT для всех

Python. Наследование класса

Оглавление

Суть

Наследование - одна из парадигм объектно-ориентированного программирования.

Родитель - класс, от которого наследуется новый класс

Потомок - новый класс, который наследует от родителя

При создании нового класса, мы можем написать его с нуля, либо же использовать уже существующий как основу. При втором варианте, новый класс будет дополнять свойства родителя и иметь доступ к его методам и полям.

Зачем?

Концепция наследования позволяет создавать измененные объекты относительно класса родителя.

Так экономится время на разработку и упрощается процесс написания программы.

Но не стоит увлекаться с наследованием, ведь при слишком большой иерархии классов, любое изменение родителей может привести к негативным последствиям работы их потомков.

Пример

Напишем класс, который будет родителем и будет выводить информацию о человеке:

Здесь используется конструктор с двумя аргументами и метод, который выводит форматированную строку. Ничего сложного.

Теперь создадим класс наследник, который будет выводить информацию о ребёнке:

-2

Родитель класса указывается в скобках после названия нового класса.

super().__init__(name, age) - вызов конструктора родительского класса, который позволит не переопределять self.name и self.age.

Сама по себе команда super() - означает вызов метода из родительского класса.

Далее мы определяем новые аргументы, которые будут являться дополнением свойств родителя.

И переопределяем метод info() вывода информации с учётом новых свойств.

Создадим объекты классов и посмотрим на разницу:

-3

Как видно, вызов конструктора сработал и количество принятых и выведенных аргументов разное в объектах класса родителя и его потомка.

Наука
7 млн интересуются