Polymorfi
Samme metodekall gir ulik oppførsel ut fra objektets klasse — f.eks. `.tegn()` på en liste med ulike Sprite-subklasser.
Slik kan du tenke om det
- Samme melding, ulikt svar Løkka skriver s.tegn() én gang og spør aldri «hvilken type er du?» — hvert objekt vet selv hvordan det skal tegnes. Derfor kan du legge til en helt ny klasse uten å røre løkka. Det er ikke arven som gjør det mulig, men at alle objektene har metoden som kalles.
Vanlige feil
- Du tror du må sjekke typen for å kalle riktig metode 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.
- Du tror polymorfi krever en felles superklasse Polymorfi i Python handler om at objektene *svarer på det samme kallet*, ikke om hvor de stammer fra. Har både `Spiller` og `Fiende` en `tegn(skjerm)`, kan samme løkke tegne begge — uten at de arver fra noe felles. Python spør ikke etter stamtavlen, bare om metoden finnes (duck-typing).