De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Overerving Toepassingen. Overerving: toepassingen zoefening 1 : eenvoudige overerving.

Verwante presentaties


Presentatie over: "Overerving Toepassingen. Overerving: toepassingen zoefening 1 : eenvoudige overerving."— Transcript van de presentatie:

1 Overerving Toepassingen

2 Overerving: toepassingen zoefening 1 : eenvoudige overerving

3 Overerving: toepassingen zoefening 1 : eenvoudige overerving

4 Overerving: toepassingen zoefening 1 : eenvoudige overerving yqueryMood( ) -> drukt stemming van het object af ygetMood( ) = beveiligde methode yqueryMood( ) -> intern gebruik van getMood( ) Subklassen kunnen stemming specialiseren door vervangen van getMood( ) ysubklasse die afgedrukte melding wil wijzigen -> queryMood( ) vervangen

5 Overerving: toepassingen zoefening 1 : eenvoudige overerving yopgave: maak twee subklassen : SadObject:->stemming = sad -> + cry( ) : void : drukt naar de opdrachtregel enkel ‘boo hoo’ af HappyObject: ->stemming = happy -> + laugh( ) : void : drukt naar de opdrachtregel enkel ‘ha ha ha’ af

6 Overerving: toepassingen zoefening 1 : eenvoudige overerving ydeze klasse moeten voldoen aan volgende main

7 Overerving: toepassingen zoefening 1 : eenvoudige overerving ydeze klasse moeten voldoen aan volgende main

8 Overerving: toepassingen zoefening 1 : eenvoudige overerving yoplossing:

9 Overerving: toepassingen zoefening 1 : eenvoudige overerving yoplossing:

10 Overerving: toepassingen zoefening 1 : eenvoudige overerving yoplossing:

11 Overerving: toepassingen zoefening 1 : eenvoudige overerving yoplossing: Resultaat Moodydriver How does the moody object feel today? I feel moody today! How does the sad object feel today? I feel sad today! ha ha ha ! How does the happy object feel today? I feel happy today! boo hoo !

12 Overerving: toepassingen zoefening 1 : eenvoudige overerving yoplossing: Resultaat Moodydriver uitvoer: aanroep van queryMood( ) ‘I feel sad today!’ -> SadObject ‘I feel happy today!’ -> HappyObject ymaar geen herdefinitie van queryMood( ) queryMood( ) -> roept intern getMood( ) aan => wel herdefinitie van getMood( )

13 Overerving: toepassingen zoefening 2 : abstracte klassen gebruiken voor geplande overerving ysoms basisklasse schrijven met de bedoeling dat andere klassen ervan zullen erven: vb bij ontdekken van identieke code bij gerelateerde klassen ysoms niet zinvol objecten te maken van de basisklasse; basisklasse bevat algemene code enkel interessant voor de subklassen yenkel zinvol objecten te maken van subklassen ybijvoorbeeld -> klasse Employee

14 Overerving: toepassingen zoefening 2 : abstracte klassen gebruiken voor geplande overerving

15 Overerving: toepassingen zoefening 2 : abstracte klassen gebruiken voor geplande overerving

16 Overerving: toepassingen zoefening 2 : abstracte klassen gebruiken voor geplande overerving yEmployee: ‘algemene’ werknemer heeft geen regels voor het berekenen van zijn salaris => geen implementatie van earnings ( ) ysubklassen zoals CommissionWorkers, HourlyWorker en SalariedWorker wel yoplossing geen earnings ( ) in Employee maar earnings ( ) is wel gemeenschappelijk voor alle subklassen => hoort thuis in superklasse => anders geen algemene behandeling voor werknemers

17 Overerving: toepassingen zoefening 2 : abstracte klassen gebruiken voor geplande overerving  maak van earnings ( ) een abstracte methode => Employee wordt een abstracte klasse abstracte methode = een wel gedeclareerde, maar niet-geïmplementeerde methode Alleen abstracte klassen kunnen abstracte methoden hebben => abstracte klassen kunnen niet geïnstantieerd worden

18 Overerving: toepassingen zoefening 2 : abstracte klassen gebruiken voor geplande overerving maak van earnings ( ) een abstracte methode => Employee wordt een abstracte klasse abstracte methode = een wel gedeclareerde, maar niet-geïmplementeerde methode Alleen abstracte klassen kunnen abstracte methoden hebben => abstracte klassen kunnen niet geïnstantieerd worden naam abstracte klasse en abstracte methoden worden cursief weergegeven in het UML-diagram

19 Overerving: toepassingen zoefening 2 : abstracte klassen gebruiken voor geplande overerving  subklassen moeten de abstracte methoden implementeren => anders weer geen objecten mogelijk van de klassen

20 Overerving: toepassingen zoefening 2 : abstracte klassen gebruiken voor geplande overerving

21 Overerving: toepassingen zoefening 2 : abstracte klassen gebruiken voor geplande overerving

22 Overerving: toepassingen zoefening 2 : abstracte klassen gebruiken voor geplande overerving

23 Overerving: toepassingen zoefening 2 : abstracte klassen gebruiken voor geplande overerving

24 Overerving: toepassingen zoefening 2 : abstracte klassen gebruiken voor geplande overerving

25 Overerving: toepassingen zoefening 2 : abstracte klassen gebruiken voor geplande overerving

26 Overerving: toepassingen zoefening 2 : abstracte klassen gebruiken voor geplande overerving

27 Overerving: toepassingen zoefening 2 : abstracte klassen gebruiken voor geplande overerving yabstracte methoden dwingen uw subklassen zich verder te specialiseren door een implementatie voor de abstracte methoden te bieden y=>U plant vooraf wat er door de subklasse moet worden geherdefinieerd door de basisklasse abstract te maken en door abstracte methoden te maken.

28 Overerving: toepassingen zoefening 2 : abstracte klassen gebruiken voor geplande overerving yopgave: Beschouw klasse MoodyObject : -> alle subklassen herdefiniëren getMood( ) -> wijzig deze hiërarchie: maak getMood( ) abstract -> pas ook MoodyDriver aan -> SadObject en HappyObject -> niet wijzigen

29 Overerving: toepassingen zoefening 2 : abstracte klassen gebruiken voor geplande overerving yoplossing:

30 Overerving: toepassingen zoefening 2 : abstracte klassen gebruiken voor geplande overerving yoplossing:

31 Overerving: toepassingen zoefening 2 : abstracte klassen gebruiken voor geplande overerving yoplossing:

32 Overerving: toepassingen  oefening 3 : een bankrekening ybekijk deze oefening zelf ygrotere overervingshiërarchie ysyntheseoefeningen kunnen een analoog klassediagram hebben


Download ppt "Overerving Toepassingen. Overerving: toepassingen zoefening 1 : eenvoudige overerving."

Verwante presentaties


Ads door Google