Что запомнить: переопределяйте метод родителя, когда нужно другое поведение, и вызывайте super(), чтобы сохранить общую логику.
Частая ошибка: забыть вызвать super().__init__() и повторить инициализацию родителя вручную.
О чём этот урок
Мы уже умеем создавать классы и работать с их атрибутами. Теперь научимся выделять общее поведение в базовые классы и расширять его в наследниках. Разберём, как устроен полиморфизм через переопределение методов, почему в Python нет классической перегрузки, и как функция super() помогает вызывать родительскую реализацию. В финале — встроенные функции isinstance и issubclass для проверки типов и иерархии.
Что изучим
Четыре принципа ООП: наследование, инкапсуляция, полиморфизм, абстракция.
Синтаксис наследования: class Child(Parent):.
Переопределение методов (overriding) как механизм полиморфизма.
Почему в Python нет перегрузки методов по количеству аргументов.
Функция super() для вызова метода ближайшего родителя.
Многоуровневое наследование и super() в цепочке классов.
Неявное наследование от object.
isinstance и issubclass: синтаксис и примеры использования.
Современные практики: явный вызов super() вместо Parent.method(self) и аннотации типов.