Как связаны методы наследования и переопределения?
Наследование позволяет нам определить класс, который извлекает все функциональные возможности из родительского класса и позволяет нам добавлять больше. Переопределение метода происходит просто, определяя в дочернем классе метод с тем же именем метода в родительском классе. Когда вы определяете метод в объекте, вы делаете его последним способным удовлетворить этот вызов метода, поэтому реализации его предков не вступают в игру.
Пример
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
