Wk5b - Inheritance

Classes en inheritance
CSD-III
1 / 14
volgende
Slide 1: Tekstslide
Applicatie- en mediaontwikkelaarMBOStudiejaar 2

In deze les zitten 14 slides, met interactieve quiz en tekstslides.

time-iconLesduur is: 120 min

Onderdelen in deze les

Classes en inheritance
CSD-III

Slide 1 - Tekstslide

Deze slide heeft geen instructies

Parameter
Constructor
Access-modifier
Properties
Return-type
Fields
Methode

Slide 2 - Sleepvraag

Deze slide heeft geen instructies

Slide 3 - Tekstslide

Deze slide heeft geen instructies

Slide 4 - Tekstslide

Deze slide heeft geen instructies

Opdracht
Maak zelf een klasse "Pterosaurus". 
Hetzelfde als Tyrannosaurus, maar: 

  • Extra field yPos
  • Methode Fly ipv Run - deze roept Move() aan én verandert yPos met de meegegeven waarde.
  • Eat-methodes overslaan
  • Een overload voor Fly die géén parameter neemt en automatisch op yPos 10 vliegt.

Slide 5 - Tekstslide

Deze slide heeft geen instructies

Maak zelf een klasse "Pterosaurus" 
Hetzelfde als Tyrannosaurus, maar: 

  • Extra field yPos
  • Methode Fly ipv Run - deze roept Move() aan én zet yPos op de meegegeven waarde.
  • Eat-methodes overslaan
  • Een overload voor Fly die géén parameter neemt en automatisch op yPos 10 vliegt.
Niet zo DRY...

Slide 6 - Tekstslide

Deze slide heeft geen instructies

Maak zelf een klasse "Pterosaurus" 
Hetzelfde als Tyrannosaurus, maar: 

  • Extra field yPos
  • Methode Fly ipv Run - deze roept Move() aan én zet yPos op de meegegeven waarde.
  • Eat-methodes overslaan
  • Een overload voor Fly die géén parameter neemt en automatisch op yPos 10 vliegt.
Niet zo DRY...
Maar hoe dan wel?

Slide 7 - Tekstslide

Deze slide heeft geen instructies

Maak zelf een klasse "Pterosaurus" 
Hetzelfde als Tyrannosaurus, maar: 

  • Extra field yPos
  • Methode Fly ipv Run - deze roept Move() aan én zet yPos op de meegegeven waarde.
  • Eat-methodes overslaan
  • Een overload voor Fly die géén parameter neemt en automatisch op yPos 10 vliegt.
Niet zo DRY...
Maar hoe dan wel?
Inheritance

Slide 8 - Tekstslide

Weet iemand wat dit is?
Wie kent de term uit een ander schoolvak wellicht?
Misschien ken je die term uit de biologie: een organisme, bijvoorbeeld een bloem, erft bepaalde eigenschappen van zijn ouders: In dit voorbeeld zijn de kinderen van een rode en een witte bloem roze.

Nu heeft een bloem altijd twee ouders, de “voortplanting” in de biologie is nogal messy, en de resultaten zijn... Onvoorspelbaar.

In programmeren houden we niet van dat soort chaos, dus hebben we het beste uit de biologie gekopieerd: De mogelijkheid om eigenschappen van een class te “erven”.

Slide 9 - Tekstslide

Misschien ken je die term uit de biologie: een organisme, bijvoorbeeld een bloem, erft bepaalde eigenschappen van zijn ouders: In dit voorbeeld zijn de kinderen van een rode en een witte bloem roze.

Nu heeft een bloem altijd twee ouders, de “voortplanting” in de biologie is nogal messy, en de resultaten zijn Onvoorspelbaar.

In programmeren houden we niet van dat soort chaos, dus hebben we het beste uit de biologie gekopieerd: De mogelijkheid om eigenschappen van een class te “erven”.

Slide 10 - Tekstslide

Deze slide heeft geen instructies

Slide 11 - Tekstslide

Deze slide heeft geen instructies

Slide 12 - Tekstslide

Deze slide heeft geen instructies

In C# is iedere class “automatisch” een base-class: alle classes waar jullie tot nu toe mee hebben gewerkt zijn altijd base-classes geweest. Om een base class te maken, hoef je dus niets anders te doen dan een class te maken.

Wanneer je wilt dat een class de eigenschappen van een andere class erft, doe je dat door bij het aanmaken van de class een : te zetten en dan de class waar je de eigenschappen van wilt erven. Nu heeft je derived class alle publieke velden en publieke methoden die de base class heeft (let op: Alleen de publieke velden en methoden).

Vervolgens kun je in de Eend-class de juiste velden en methoden maken om ervoor te zorgen dat een eend kan vliegen en eieren kan leggen.

Slide 13 - Tekstslide

Deze slide heeft geen instructies

Opdracht
  1. Download uit de notities bij wk5 JurrasicPark.zip. Hierin vind je mijn variant van Tyrannosaurus en Pterosaurus, maar deze is niet DRY.
  2. Voeg een nieuwe klasse Dinosaur toe. Dit wordt straks de base-class
  3. Knip/plak code die gelijk is voor beide dino's naar de Dinosaur-klasse
  4. Zorg dat Tyrannosaurus en Pterosaurus inheriten van Dinosaur            
  5. Het programma moet werken zoals voorheen. Verander fields waar nodig van private naar protected, zodat derived klasses erbij kunnen
(internal class Duck : Animal)
Klaar?
1. Laat je oplossing checken door de docent

2. Start aan opdracht "PcMan", zie notities onder wk5

Slide 14 - Tekstslide

Deze slide heeft geen instructies