Как связаны методы наследования и переопределения?
Наследование позволяет нам определить класс, который извлекает все функциональные возможности из родительского класса и позволяет нам добавлять больше. Переопределение метода происходит просто, определяя в дочернем классе метод с тем же именем метода в родительском классе. Когда вы определяете метод в объекте, вы делаете его последним способным удовлетворить этот вызов метода, поэтому реализации его предков не вступают в игру.
Пример
class BaseClass: def OverrideMethod(self): print("BaseClass->OverrideMethod") def BeaseMethod(self): print("BaseClass->BeaseMethod") class DerivedClass(BaseClass): def OverrideMethod(self): print("DerivedClass->OverrideMethod") def testMethod(x): x.OverrideMethod() x.BeaseMethod() testMethod(BaseClass()) testMethod(DerivedClass())
Выход
BaseClass->OverrideMethod BaseClass->BeaseMethod DerivedClass->OverrideMethod BaseClass->BeaseMethod