Skillnad mellan versioner av "4.2 Arv"
Från Mathonline
Taifun (Diskussion | bidrag) m |
Taifun (Diskussion | bidrag) m |
||
(11 mellanliggande versioner av samma användare visas inte) | |||
Rad 28: | Rad 28: | ||
<b><span style="color:red">Problem:</span></b> | <b><span style="color:red">Problem:</span></b> | ||
− | Subklassen ärver | + | Subklassen ärver basklassens datamedlemmar och metoder. Men hur ska konstruktorn ärvas? |
<b><span style="color:red">Lösningen:</span></b> Se konstruktorns kod i klassen Employee. | <b><span style="color:red">Lösningen:</span></b> Se konstruktorns kod i klassen Employee. | ||
Rad 37: | Rad 37: | ||
= <b><span style="color:#931136">Klassen Date</span></b> = | = <b><span style="color:#931136">Klassen Date</span></b> = | ||
− | <div class=" | + | <div class="ovnA"> |
[[Image: Date.jpg]] | [[Image: Date.jpg]] | ||
+ | |||
+ | |||
+ | <big> | ||
+ | Både klassen Person och klassen Employee använder klassen Date, för att | ||
+ | |||
+ | deklarera datamedlemmar av typ Date. 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. | ||
+ | |||
+ | </big> | ||
</div> | </div> | ||
− | = <b><span style="color:#931136"> | + | = <b><span style="color:#931136">Super- eller basklassen Person</span></b> = |
− | <div class=" | + | <div class="ovnA"> |
− | [[Image: | + | [[Image: Personc.jpg]] |
</div> | </div> | ||
− | = <b><span style="color:#931136"> | + | = <b><span style="color:#931136">Subklassen Employee</span></b> = |
− | <div class=" | + | <div class="ovnA"> |
− | [[Image: | + | [[Image: Employeea.jpg]] |
</div> | </div> | ||
Rad 56: | Rad 66: | ||
= <b><span style="color:#931136">Programmet Inheritance</span></b> = | = <b><span style="color:#931136">Programmet Inheritance</span></b> = | ||
<div class="ovnA"> | <div class="ovnA"> | ||
− | [[Image: | + | [[Image: Inheritancea.jpg]] |
+ | </div> | ||
+ | |||
+ | |||
+ | = <b><span style="color:#931136">Körexempel</span></b> = | ||
+ | <div class="ovnA"> | ||
+ | <div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: InheritanceKorexa.jpg]]</div> | ||
</div> | </div> | ||
Rad 62: | Rad 78: | ||
<br> | <br> | ||
− | = <b><span style="color:#931136">Läs om | + | = <b><span style="color:#931136">Läs om arv i [http://www.mathonline.se/Progr_2/Boken%20Progr_2_Cs.pdf <span style="color:blue">kursboken</span>] på sid 108-112.</span></b> = |
Rad 88: | Rad 104: | ||
− | [[Matte:Copyrights|Copyright]] © | + | [[Matte:Copyrights|Copyright]] © 2022 [https://www.techpages.se <b><span style="color:blue">TechPages AB</span></b>]. All Rights Reserved. |
Nuvarande version från 21 april 2022 kl. 14.42
Lektion 30 | Genomgång | Övningar |
Objektorienterade programmeringens tre hörnstenar
Vad är arv i programmering?
Superklassen kallas även för basklassen. T.ex. kallas basklassens konstruktor för base().
Problem:
Subklassen ärver basklassens datamedlemmar och metoder. Men hur ska konstruktorn ärvas?
Lösningen: Se konstruktorns kod i klassen Employee.
Klassen Date
Både klassen Person och klassen Employee använder klassen Date, för att
deklarera datamedlemmar av typ Date. 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
Subklassen Employee
Programmet Inheritance
Körexempel
Läs om arv i kursboken på sid 108-112.
Copyright © 2022 TechPages AB. All Rights Reserved.