У меня есть три класса: Animal, Dog и BabyDog.
Код: Выделить всё
DogНо когда я вызываю sound() с использованием объекта BabyDog, вместо BabyDog выполняется метод Dog.
Вот мой код:
Код: Выделить всё
class Animal:
def sound(self):
return "Some generic sound"
class Dog(Animal):
def sound(self):
return "Woof!"
class BabyDog(Dog):
def sound():
return "Small woof!"
obj = BabyDog()
print(obj.sound())
Код: Выделить всё
Woof!
Код: Выделить всё
Small woof!
- Почему не используется переопределенный метод в BabyDog?
- Связано ли это с сигнатурами методов или отсутствующим параметром self?
- Как правильно переопределять методы при многоуровневом наследовании?
Подробнее здесь: https://stackoverflow.com/questions/798 ... ance-chain
Мобильная версия