-
Sinan Okay thinks this is interesting:
Calling through the class directly effectively subverts
inheritance and kicks the call higher up the class tree to run a
specific version. In our case, we can use this technique to invoke the
default giveRaise
in Person
, even though it’s been redefined at the
Manager
level. In some sense, we
must call through Person
this way, because a self.giveRaise()
inside Manager
’s giveRaise
code would loop—since self
already is a Manager
, self.giveRaise()
would resolve again to
Manager.giveRaise
, and so on and so
forth recursively
Minimise