Du tror du må sjekke typen for å kalle riktig metode

Handler om: Polymorfi

Det er fristende å skrive en if-kjede som spør «hvilken type er dette?» før du kaller riktig metode. Men med polymorfi kaller du bare den ene metoden, og hvert objekt svarer selv. Da slipper du if-kjeden helt — og ny type krever ingen endring i løkka.

Eksempel

Du skriver if type(s) == Ball: ... elif type(s) == Fiende: ... i stedet for bare s.tegn().

Slik tenker du riktig om det

Stol på at objektet vet hvordan det skal tegne seg selv. Kall samme metode på alle — s.tegn() — og la hver klasse ha sin egen versjon. Legger du til en ny type senere, trenger du ikke røre løkka.

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