De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Polymorfie Toepassingen. Polymorfie: toepassingen zoefening 1 : polymorfie toepassen.

Verwante presentaties


Presentatie over: "Polymorfie Toepassingen. Polymorfie: toepassingen zoefening 1 : polymorfie toepassen."— Transcript van de presentatie:

1 Polymorfie Toepassingen

2 Polymorfie: toepassingen zoefening 1 : polymorfie toepassen

3 Polymorfie: toepassingen zoefening 1 : polymorfie toepassen

4 Polymorfie: toepassingen zoefening 1 : polymorfie toepassen

5 Polymorfie: toepassingen zoefening 1 : polymorfie toepassen

6 Polymorfie: toepassingen zoefening 1 : polymorfie toepassen

7 Polymorfie: toepassingen zoefening 1 : polymorfie toepassen

8 Polymorfie: toepassingen zoefening 1 : polymorfie toepassen

9 Polymorfie: toepassingen zoefening 1 : polymorfie toepassen hourlyWorker en CommissionWorker->voor vervanging geschikte relaties van Employee

10 Polymorfie: toepassingen zoefening 1 : polymorfie toepassen

11 Polymorfie: toepassingen zoefening 1 : polymorfie toepassen

12 Polymorfie: toepassingen zoefening 1 : polymorfie toepassen

13 Polymorfie: toepassingen zoefening 1 : polymorfie toepassen ypayEmployees(emps : array[ ] van Employee): ipv Employee -> ook subklassen, zoals HourlyWorkers en CommissionWorkers wegens Voor vervanging geschikte relaties; subklassen worden op een algemene manier behandeld als gewone instanties van Employee ytotal_pay = total_pay + emp.earnings( ) xpolymorfie laat lijken alsof Employee veel verschillende gedragingen heeft xemp.earnings( ) toegepast op HourlyWorker => earnings( ) van HourlyWorker xemp.earnings( ) toegepast op CommissionWorker => earnings( ) van CommissionWorker  payEmployees( ) is een voorbeeld van inkapselende polymorfie. Deze methode werkt voor elke willekeurige werknemer. De methode heeft geen speciale code nodig en u hoeft deze niet telkens bij te werken als u een nieuwe subklasse aan het systeem toevoegt - de methode werkt gewoon voor alle Employees.  Methoden zoals recordEmployeeInfo(emp : CommissionWorker) en recordEmployeeInfo( emp : HourlyWorker) demonstreren overloading. Overloading maakt het een methode mogelijk polymorfisch te lijken. Overloading staat bijvoorbeeld het volgende toe:

14 Polymorfie: toepassingen zoefening 1 : polymorfie toepassen ypayEmployees( ): voorbeeld van inkapselende polymorfie  geen speciale code nodig voor nieuwe subklasse : methode werkt gewoon voor alle Employees yrecordEmployeeInfo(emp : CommissionWorker) en recordEmployeeInfo( emp : HourlyWorker) demonstreren overloading xdoor overloading lijkt de methode polymorfisch want deze kan beide soorten werknemers verwerken xhet volgende is dus mogelijk

15 Polymorfie: toepassingen  oefening 1 : polymorfie toepassen

16 Polymorfie: toepassingen  oefening 1 : polymorfie toepassen xOverloading is wat beperkter dan inkapselende polymorfie: inkapselende polymorfie: één methode (payEmployees( )) nodig voor het berekenen van het loon van een willekeurige Employee, ongeacht het aantal subklassen overloading : telkens een nieuwe methode (recordEmployeeInfo( ) ) toevoegen voor een nieuwe subklasse -> gaat voor kleine hiërarchie, maar voor grotere -> aanpassing: een algemene recordEmployeeInfo( ) schrijven=>inkapselende polymorfie gebruiken

17 Polymorfie: toepassingen

18

19 zoefening 1 : polymorfie toepassen

20 Polymorfie: toepassingen zoefening 1 : polymorfie toepassen yzelf nu toepassen: beschouw MoodyObject en subklassen SadObject en HappyObject

21 Polymorfie: toepassingen zoefening 1 : polymorfie toepassen

22 Polymorfie: toepassingen zoefening 1 : polymorfie toepassen ySchrijf klasse PsychiatristObject: -> examine( ): neemt een instantie van MoodyObject aan en vertelt hoe die instantie zich voelt -> observe( ): roept cry( ) of laugh( ) aan van het object-argument de PsychiatristObject geeft een medische opmerking voor elk gedrag

23 Polymorfie: toepassingen zoefening 1 : polymorfie toepassen yPsychiatristDriver =hoofdprogramma

24 Polymorfie: toepassingen zoefening 1 : polymorfie toepassen yPsychiatristDriver =hoofdprogramma

25 Polymorfie: toepassingen zoefening 1 : polymorfie toepassen yoplossing:

26 Polymorfie: toepassingen zoefening 1 : polymorfie toepassen yoplossing:


Download ppt "Polymorfie Toepassingen. Polymorfie: toepassingen zoefening 1 : polymorfie toepassen."

Verwante presentaties


Ads door Google