Oefeningen H13
Het dierenrijk

Maak bovenstaande klassenhierarchie na. Animal is de parentklasse , mammal en reptile zijn childklassen van Animal en zo voort.
Verzin voor iedere klasse een property die de parent klasse niet heeft. (bv Animal heeft "BeweegVoort", Reptile heeft "AantalSchubben", etc).
Voorzie in de klasse Animal een virtual methode ToonInfo
die alle properties van de klasse op het scherm zet. De overgeërfde klassen overriden deze methode door de extra properties ook te tonen (maar gebruik base.ToonInfo om zeker de parentklasse werking te bewaren).
Maak nu van iedere klasse een object en roep de ToonInfo methode van ieder object aan.
Plaats deze dieren nu in een List<Animal>
en kijk wat er gebeurt als je deze met een foreach aanroept om alle ToonInfo-methoden van ieder dier te gebruiken.
Magische dranken (Essential, GPT)
In deze opdracht ontwerp je een systeem waarin dranken niet alleen dorst lessen, maar ook mysterieuze krachten bezitten. Van gewone drankjes tot zeldzame elixers — elke slok telt! 🧪✨
Ontwerp een systeem waarin verschillende dranken een magische kracht”* hebben.
Maak een basis‑klasse
Drank
met:Een property voor de naam van de drank.
Een constructor die de naam instelt.
Een virtuele methode
BerekenKracht()
die een standaard krachtwaarde (50) teruggeeft.
Maak een sub‑klasse
Elixer
die erft vanDrank
en een extra propertyIsZeldzaam
bevat.Overschrijf de methode
BerekenKracht()
zodat eerst de basiskracht (verkregen viabase.BerekenKracht()
) wordt berekend en vervolgens een bonus wordt opgeteld: +20 alsIsZeldzaam
true
is, anders +10.
Implementeer een hoofdprogramma waarin je meerdere drankobjecten (bijv. een gewoon drankje en een zeldzaam elixer) aanmaakt en hun berekende kracht op de console toont.
Ziekenhuis (Essential)
Deel 1
Maak een basisklasse Patient
die een programma kan gebruiken om de doktersrekening te berekenen.
Een patiënt heeft:
een naam
het aantal uur dat hij in het ziekenhuis heeft gelegen
Een virtual
methode BerekenKost
zal de totaalkost berekenen en teruggeven. Deze bestaat uit 50euro+ 20euro per uur dat de patiënt in het ziekenhuis lag.
Maak een methode ToonInfo
die steeds de naam van de patiënt toont gevolgd door het aantal uur en z'n kosten.
Deel 2
Maak een specialisatieklasse VerzekerdePatient
. Deze klasse heeft alles dat een gewone Patient
heeft, echter de berekening van de kosten zal steeds gevolgd worden door een 10% reductie.
Toon de werking aan van deze klasse.
HiddenBookmark
Voeg een HiddenBookmark
klasse toe aan je bestaande Bookmark Manager applicatie van vorige hoofdstuk.
De HiddenBookmark
is een Bookmark
klasse die de ToonSite
methode override door VOOR en NA dat de site op het scherm werd getoond er de tekst **********INCOGNITO MODE************
getoond wordt
Test wat er gebeurt als je al je bookmarks vervangt door HiddenBookmarks
.
Ballspel met overerving
Volgende code toont hoe we een bestaande klasse Ball
kunnen overerven om een bestuurbare bal te maken
Basisklasse Ball
We maken een klasse Ball
die via Update
en Draw
zichzelf over het consolescherm beweegt. Enkele opmerkingen:
We maken sommige variabelen
protected
zodat later de overgeërfde klassen er aan kunnenEen
static
methodeCheckHit
laat ons toe te ontdekken of tweeBall
objecten mekaar raken
Specialisatie klasse PlayerBall
De overgeërfde klasse PlayerBall
is een Ball
maar zal z'n vx
en vy
updaten gebaseerd op input via de ChangeVelocity
methode:
Eenvoudig spel
We maken nu een rudimentair spel waarin de gebruiker een bal moet proberen te raken.
Kan je dit uitbreiden met?
Ballen met andere eigenschappen
Meerdere ballen die over het scherm vliegen (benodigdheden: array )
Meerdere levels
Score gebaseerd op tijd die gebruiker nodig had om bal te raken (benodigdheden: teller die optelt na iedere
Sleep
)PRO: collision detection tussen de ballen
Last updated
Was this helpful?