Вы используете super
, когда переопределяющий метод должен сделать что-то в дополнение к тому, что делает метод его базового класса.
Например, если у вас есть class Point
и class Circle(Point)
и вы хотите реализовать def move
, круги могут просто повторно использовать метод точки, который они наследуют - поскольку перемещение круга точно перемещает центральную точку круга.
Но если у вас есть class Monster
и class Dragon(Monster)
... вы можете выжечь землю, когда мимо проходит дракон, что другие монстры не сделали бы. Таким образом, вы бы сказали, что движение дракона такое же, как и нормальное, с добавлением огня:
class Dragon(Monster):
def move(self, destination):
super(Monster, self).move(destination)
destination.add_some_fire()