OO Programmeren Labo 9 en 10
Home

OO Programmeren Labo 9 en 10

abstractie en overerving

OO Programmeren Labo 9 en 10

abstractie en overerving

Afstandsonderwijs

Doelstelling

In dit labo leer je:

  1. klassen af te leiden uit bestaande klassen via overerving;
  2. abstracte klassen en abstracte methodes te introduceren waar gepast;
  3. lijsten te bevolken met objecten van verschillende subklassen van één ouderklasse;
  4. het juiste type kiezen bij het declareren van een variabele wanneer er meerdere opties zijn;
  5. virtual methodes te overschrijven met override;

Theorie

  1. Overerving intro
  2. Virtual en override
  3. Abstract
  4. De theorie wordt in het labofilmpje hieronder verwerkt.

Labo

  1. We breiden ons project SchoolAdmin uit met een klasse Lecturer.
  2. We groeperen gemeenschappelijke aspecten van Student en Lecturer in een klasse Person.
  3. We maken de klasse Person abstract.
  4. We voorzien een abstracte methode ShowOne en laten Student en Lecturer deze concreet maken.
  5. We voorzien een "default" methode GetNameTagText maar laten deze overschrijven door Lecturer.
  6. We voorzien een concrete methode ShowCourses in Lecturer die volledig los staat van Person (deze hoeft nog geen echte vakken te tonen, dat kunnen we later toevoegen).
  7. ;

Opdracht

  1. Breng je code up-to-date met het filmpje. Zorg dus voor:
    1. een abstracte klasse Person met:
      1. een abstracte methode ShowOne van type string
      2. een overschrijfbare methode GetNameTagText van type string
    2. een klasse Lecturer die Person concreet maakt met:
      1. een implementatie van ShowOne
      2. een afwijkende implementatie van GetNameTagText die een jobtitel voor de naam plaatst
      3. een statische List<Lecturer> -property List
      4. een concrete methode ShowCourses die een een boodschap genereert waaruit kan afgelezen worden welke vakken deze lector geeft.
    3. een uitgebreide versie van Main, waarin een lijst van Person-objecten wordt aangemaakt met daarin de bestaande Student-objecten en volgende twee lectoren (in het filmpje worden andere objecten gebruikt; jij plaatst er alle studenten in en deze twee lectoren):
      1. Adem Kaya, 1976-12-01, 1, 1
      2. Anne Wouters, 1968-04-03, 2, 2
  2. Doe zelf volgende extra's:
    1. Naast studenten en lectoren zijn er ook administratieve medewerkers. Maak hiervoor een klasse AdministrativeStaff.
    2. Zorg ervoor dat ShowOne voor administratief personeel hetzelfde werkt als voor lectoren, maar geen geboortedatum toont.
    3. Zorg ervoor dat voor administratief personeel de tekst (ADMINISTRATIE) verschijnt op het naamkaartje, vlak voor de volledige naam.
    4. Maak een object van deze nieuwe klasse aan: Raul Jacob, 1985-11-01, 1, 1.
    5. Voeg deze persoon toe aan de lijst met alle personen.
    6. Controleer dat ook zijn gegevens juist getoond worden.
    7. Plaats je code op Bitbucket.
    8. Stuur het bestand AdministrativeStaff.cs met de link op Digitap door.

JI
2020-04-30 16:12:41