Skillnad mellan versioner av "5.9 Arv"
Från Mathonline
Taifun (Diskussion | bidrag) m |
Taifun (Diskussion | bidrag) |
||
| Rad 38: | Rad 38: | ||
=== <span style="color:#931136">Super- eller basklassen Person</span> === | === <span style="color:#931136">Super- eller basklassen Person</span> === | ||
[[Image: Person_h.jpg]] | [[Image: Person_h.jpg]] | ||
| − | |||
<big> | <big> | ||
| Rad 45: | Rad 44: | ||
Subklassen <b>Employee</b> ärver superklassen <b>Person</b>:s alla datamedlemmar och metoder. | Subklassen <b>Employee</b> ärver superklassen <b>Person</b>:s alla datamedlemmar och metoder. | ||
| − | Men hur ska konstruktorn ärvas? Den kan inte ärvas direkt | + | Men hur ska konstruktorn ärvas? Den kan inte ärvas direkt, eftersom: |
Konstruktorns namn = Klassnamn. Sub- och superklassen har olika namn. | Konstruktorns namn = Klassnamn. Sub- och superklassen har olika namn. | ||
| − | <b><span style="color:red">Lösningen:</span></b> | + | <b><span style="color:red">Lösningen:</span></b> |
| + | |||
| + | Subklassens konstruktor måste explicit ärva superklassens konstruktor. | ||
| + | |||
| + | Se konstruktorns kod i subklassen <b>Employee</b> nedan: | ||
</big> | </big> | ||
| − | |||
=== <span style="color:#931136">Subklassen Employee</span> === | === <span style="color:#931136">Subklassen Employee</span> === | ||
Versionen från 12 februari 2026 kl. 11.41
| Agenda | Genomgång | Övningar 27 | Nästa lektion >> |
5.9 Arv
Modellens implementering
Klassen Date
Både superklassen Person och subklassen Employee (nedan) behöver klassen Date, för att
deklarera datamedlemmar av typ Date. Det är samma klass som användes vid komposition.
Därför måste klassen Date inkluderas i detta projekt.
På så sätt är projektet ett exempel på både komposition och arv.
Super- eller basklassen Person
Problem:
Subklassen Employee ärver superklassen Person:s alla datamedlemmar och metoder.
Men hur ska konstruktorn ärvas? Den kan inte ärvas direkt, eftersom:
Konstruktorns namn = Klassnamn. Sub- och superklassen har olika namn.
Lösningen:
Subklassens konstruktor måste explicit ärva superklassens konstruktor.
Se konstruktorns kod i subklassen Employee nedan:
Subklassen Employee
Programmet Inheritance
Copyright © 2026 Lieta AB. All Rights Reserved.



