
OO Programmeren Labo 9 en 10
abstractie en overerving
Afstandsonderwijs
Doelstelling
In dit labo leer je:
- klassen af te leiden uit bestaande klassen via overerving;
- abstracte klassen en abstracte methodes te introduceren waar gepast;
- lijsten te bevolken met objecten van verschillende subklassen van één ouderklasse;
- het juiste type kiezen bij het declareren van een variabele wanneer er meerdere opties zijn;
virtualmethodes te overschrijven metoverride;
Theorie
- Overerving intro
- Virtual en override
- Abstract
- De theorie wordt in het labofilmpje hieronder verwerkt.
Labo
- We breiden ons project SchoolAdmin uit met een klasse
Lecturer. - We groeperen gemeenschappelijke aspecten van
StudentenLecturerin een klassePerson. - We maken de klasse
Personabstract. - We voorzien een abstracte methode
ShowOneen latenStudentenLecturerdeze concreet maken. - We voorzien een "default" methode
GetNameTagTextmaar laten deze overschrijven doorLecturer. - We voorzien een concrete methode
ShowCoursesinLecturerdie volledig los staat vanPerson(deze hoeft nog geen echte vakken te tonen, dat kunnen we later toevoegen). - ;
Opdracht
- Breng je code up-to-date met het filmpje. Zorg dus voor:
- een abstracte klasse
Personmet:- een abstracte methode
ShowOnevan type string - een overschrijfbare methode
GetNameTagTextvan type string
- een abstracte methode
- een klasse Lecturer die Person concreet maakt met:
- een implementatie van
ShowOne - een afwijkende implementatie van
GetNameTagTextdie een jobtitel voor de naam plaatst - een statische
List<Lecturer>-property List - een concrete methode
ShowCoursesdie een een boodschap genereert waaruit kan afgelezen worden welke vakken deze lector geeft.
- een implementatie van
- een uitgebreide versie van
Main, waarin een lijst vanPerson-objecten wordt aangemaakt met daarin de bestaandeStudent-objecten en volgende twee lectoren (in het filmpje worden andere objecten gebruikt; jij plaatst er alle studenten in en deze twee lectoren):- Adem Kaya, 1976-12-01, 1, 1
- Anne Wouters, 1968-04-03, 2, 2
- een abstracte klasse
- Doe zelf volgende extra's:
- Naast studenten en lectoren zijn er ook administratieve medewerkers. Maak hiervoor een klasse
AdministrativeStaff. - Zorg ervoor dat
ShowOnevoor administratief personeel hetzelfde werkt als voor lectoren, maar geen geboortedatum toont. - Zorg ervoor dat voor administratief personeel de tekst (ADMINISTRATIE) verschijnt op het naamkaartje, vlak voor de volledige naam.
- Maak een object van deze nieuwe klasse aan: Raul Jacob, 1985-11-01, 1, 1.
- Voeg deze persoon toe aan de lijst met alle personen.
- Controleer dat ook zijn gegevens juist getoond worden.
- Plaats je code op Bitbucket.
- Stuur het bestand AdministrativeStaff.cs met de link op Digitap door.
- Naast studenten en lectoren zijn er ook administratieve medewerkers. Maak hiervoor een klasse
2020-04-30 16:12:41