Mekanisme for å generalisere klasser til en superklasse
Lov på eksamen
- Datamaskin med programmeringsverktøy
- Lærebok, dokumentasjon og egne notater og programmer
Ikke åpent internett (bare noen utvalgte nettressurser), kommunikasjon med andre eller kunstig intelligens.
Kan den løses uten PC?
Kan løses med penn og papir. Du trenger ikke kalkulator.
Fra 2027 er det bare kalkulator og skriftlige hjelpemidler på del 2. Vurderingen er gjort med KI og kan inneholde feil.
En utvikler som modellerer et objektorientert program, oppdager at flere av klassene har like eller lignende metoder og egenskaper. Utvikleren velger å generalisere de felles metodene og egenskapene til en superklasse.
Hvilket prinsipp eller hvilken mekanisme må implementeres for å realisere denne modellen med objektorientert programmering?
Fasit
Arv: subklassene arver de felles metodene og egenskapene fra superklassen.
LøsningsforslagKI-generert
Når felles egenskaper og metoder flyttes opp i en superklasse, må de andre klassene arve fra den. Da blir de subklasser. De får alt superklassen har, uten at koden skrives flere ganger, og de kan i tillegg ha egne egenskaper og metoder. I UML heter dette generalisering og tegnes med en hul trekant som peker mot superklassen.
De andre alternativene gir ikke en superklasse:
- Abstraksjon betyr å ta med bare det som er viktig for problemet og se bort fra detaljene. Det er en del av all modellering, men det er ikke mekanismen som knytter klassene til en superklasse.
- Polymorfisme betyr at objekter av ulike klasser kan svare på det samme metodekallet på hver sin måte. Den bygger ofte på arv, men er ikke det som realiserer generaliseringen.
- Innkapsling betyr å samle data og metoder i en klasse og skjule de indre detaljene for resten av programmet.