Wk5b - Inheritance

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

This lesson contains 14 slides, with interactive quiz and text slides.

time-iconLesson duration is: 120 min

Items in this lesson

Classes en inheritance
CSD-III

Slide 1 - Slide

This item has no instructions

Parameter
Constructor
Access-modifier
Properties
Return-type
Fields
Methode

Slide 2 - Drag question

This item has no instructions

Slide 3 - Slide

This item has no instructions

Slide 4 - Slide

This item has no instructions

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 - Slide

This item has no instructions

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 - Slide

This item has no instructions

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 - Slide

This item has no instructions

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 - Slide

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 - Slide

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 - Slide

This item has no instructions

Slide 11 - Slide

This item has no instructions

Slide 12 - Slide

This item has no instructions

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 - Slide

This item has no instructions

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 - Slide

This item has no instructions