Arv (er-en)
En subklasse arver egenskaper og metoder fra en superklasse og kan legge til eller endre. «Er-en»-relasjon: en Ball ER EN Sprite.
Vanlige feil
- Du tror arv kopierer koden inn i subklassen Det kan virke som om arv lager en kopi av forelderens kode i subklassen. Men subklassen «låner» forelderens metoder ved kjøring: endrer du forelderen, endres oppførselen til alle subklassene samtidig.
- Du bruker arv der det egentlig er komposisjon Det er lett å gripe til arv så snart to klasser henger sammen. Men arv passer bare når den ene ER EN av den andre. Hvis den ene heller HAR den andre, er det komposisjon. En spilleliste er ikke en sang — den har mange sanger.
Øv på dette
- Flervalg: er-en eller har-en?
- Sjekk: arver eller kopierer?
- Lag en ny sprite-type
- Herme: kjør sprite-hierarkiet
- Les arve-diagrammet
- Utvide: ny metode i superklassen
- Øving: arv med dyr
- Flervalg: arv, komposisjon, polymorfi eller abstraksjon?
- Begrepssjekk: Arv og komposisjon
- Diskuter: arv eller komposisjon?
- Spiller og våpen: arv eller komposisjon?
- To design for et power-up i spillet: arv eller komposisjon?
- Refaktorer: to klasser, én felles superklasse