Du tror override sletter forelderens metode

Handler om: Override (super)

Når du overstyrer (override) en metode, kan det virke som forelderens versjon forsvinner. Men den finnes fortsatt — du når den med `super()` og kan bygge videre på den.

Eksempel

Du tror at etter override av tegn() i Ball, finnes ikke Sprite.tegn() lenger.

Slik tenker du riktig om det

Override = «gjør det på min måte». `super()` = «gjør først det forelderen gjorde». Begge finnes samtidig.

Slik ser det ut i kode

Slik gikk det galt

class Ball(Sprite):
    def tegn(self):
        ...    # du tror Sprite.tegn() er borte nå

Slik fikser du det

class Ball(Sprite):
    def tegn(self):
        super().tegn()    # forelderens versjon finnes fortsatt
        ...               # så min egen i tillegg

Les om dette i boka

↓↑ naviger Enter åpne ShiftEnter ny fane Esc lukk
Velg tema
Skala