Найти тему
programmer's notes (python and more)

ООП на Python. Начала наследования. Приложение к видео 7

Доброго времени суток, читатели, зрители моего канала programmer's notes.

Приложение к уроку

Простое введение в наследование

Сегодня рассмотрим простое наследование, без излишеств. А их, кстати, довольно много. И, вероятно, мой рассказ о наследовании в Python придётся затянуть. Что, может быть и к счастью, так как придётся разобрать несколько интересных деталей.

Начнем уж совсем с тривиального примера: один пустой класс (worker) наследует другой (person).

Текст программы см. ниже
Текст программы см. ниже
primer207.py

Класс person будем называть родительским, класс worker - дочерним. При этом можно создавать объекты как родительского, так и дочернего класса.

В следующем примере в родительском классе имеется два метода. В дочернем классе методов нет, но при наследовании методы родителя переносятся в дочерний.

Текст программы см. ниже
Текст программы см. ниже
primer208.py

Результат выполнения программы

Иванов И.И.

Следующий пример похож на предыдущий, но один метод определён в дочернем классе. Результат выполнения такой программы ни чем не отличается от выполнения предыдущей программы.

Текст программы см. ниже
Текст программы см. ниже
primer209.py

Результат выполнения программы

Иванов И.И.

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

Текст программы см. ниже
Текст программы см. ниже
primer210.py

Результат выполнения программы

Иванов И.И.
Отдел продаж

Ну и наконец следует остановиться о наследовании статических переменных. Но предварительно рекомендую посмотреть вот это урок.

Текст программы см. ниже
Текст программы см. ниже
primer211.py

Результат выполнения программы

100
200
100

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

Всего наилучшего. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.

Превращение кофеина в код
Превращение кофеина в код