Как связаны методы наследования и переопределения?
Наследование позволяет нам определить класс, который извлекает все функциональные возможности из родительского класса и позволяет нам добавлять больше. Переопределение метода происходит просто, определяя в дочернем классе метод с тем же именем метода в родительском классе. Когда вы определяете метод в объекте, вы делаете его последним способным удовлетворить этот вызов метода, поэтому реализации его предков не вступают в игру.
Пример
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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()) |
Выход
1 2 3 4 |
BaseClass->OverrideMethod BaseClass->BeaseMethod DerivedClass->OverrideMethod BaseClass->BeaseMethod |