Skillnad mellan versioner av "4.2 Arv"

Från Mathonline
Hoppa till: navigering, sök
m
m
 
(13 mellanliggande versioner av samma användare visas inte)
Rad 24: Rad 24:
  
 
<big>
 
<big>
Superklassen kallas även för <b><span style="color:red">basklassen</span></b>. &nbsp; <b><span style="color:red">base()</span></b> blir referensen till basklassens konstruktor.
+
Superklassen kallas även för <b><span style="color:red">basklassen</span></b>. &nbsp; T.ex. kallas basklassens konstruktor för <b><span style="color:red">base()</span></b>.
  
 
<b><span style="color:red">Problem:</span></b>
 
<b><span style="color:red">Problem:</span></b>
  
Subklassen ärver även basklassens alla metoder. Men hur ska konstruktorn ärvas?
+
Subklassen ärver basklassens datamedlemmar och metoder. Men hur ska konstruktorn ärvas?
  
Se klassen Employee.
+
<b><span style="color:red">Lösningen:</span></b> &nbsp; Se konstruktorns kod i klassen Employee.
 
   
 
   
 
</big>
 
</big>
Rad 37: Rad 37:
  
 
= <b><span style="color:#931136">Klassen Date</span></b> =
 
= <b><span style="color:#931136">Klassen Date</span></b> =
<div class="ovnC">
+
<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">Klassen Person</span></b> =
+
= <b><span style="color:#931136">Super- eller basklassen Person</span></b> =
<div class="ovnC">
+
<div class="ovnA">
[[Image: Person.jpg]]
+
[[Image: Personc.jpg]]
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Klassen Employee</span></b> =
+
= <b><span style="color:#931136">Subklassen Employee</span></b> =
<div class="ovnC">
+
<div class="ovnA">
[[Image: Employee.jpg]]
+
[[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: Inheritance.jpg]]
+
[[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 komposition i kursboken på sid 170-173.</span></b> =
+
= <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]] © 2021 [https://www.techpages.se <b><span style="color:blue">TechPages AB</span></b>]. All Rights Reserved.
+
[[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

Utdrag ur kursboken, sid 71:

OOP Tre hornstenar.jpg


Vad är arv i programmering?

Arv.jpg


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

Date.jpg


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

Personc.jpg


Subklassen Employee

Employeea.jpg


Programmet Inheritance

Inheritancea.jpg


Körexempel

InheritanceKorexa.jpg



Läs om arv i kursboken på sid 108-112.


 










Copyright © 2022 TechPages AB. All Rights Reserved.