De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Polymorphisme en Interfaces: inleiding

Verwante presentaties


Presentatie over: "Polymorphisme en Interfaces: inleiding"— Transcript van de presentatie:

1 Polymorphisme en Interfaces: inleiding

2 5 concepten: Methodedeclaratie Methodedefinitie Late binding
Abstracte klassen Multiple inheritance

3 (1) Methodedeclaratie Hierbij wordt aangegeven welke methode er moet aanwezig zijn: public void paint( Graphics g)

4 (2) Methodedefinitie Hierbij wordt gezegd wat die methode in deze klasse doet wanneer ze opgeroepen wordt; het gedrag van de methode wordt vastgelegd: public void paint( Graphics g) { g.drawOval(10, 10, 100, 100); }

5 (2) Methodedefinitie Methode overriden: dit betekent dat éénzelfde declaratie van een methode in verschillende (overgeërfde) klassen telkens een andere definitie krijgt. Verder zie volgend punt: late binding.

6 (2) Methodedefinitie Een methode moet gedeclareerd én gedefiniëerd zijn in een klasse alvorens ze gebruikt kan worden, maar ze kan als declaratie (dus zonder definitie) overgeërfd worden - zie abstracte methoden.

7 (3) Late binding aka. dynamische binding

8 (3) Late binding aka. dynamische binding Zie voorbeeld

9 (3) Late binding aka. dynamische binding Zie voorbeeld
Late binding is het principe waardoor altijd de meest toepasselijke methodedefinitie gevonden en gebruikt wordt.

10 (3) Late binding aka. dynamische binding Zie voorbeeld
Late binding is het principe waardoor altijd de meest toepasselijke methodedefinitie gevonden en gebruikt wordt. Vooral toepasselijk voor klassen die geupcast worden.

11 (3) Late binding Java werkt altijd via late binding; at runtime wordt altijd de methodedefinitie gebruikt die eigen is aan het object, zelfs al gedraagt dat object zich op dat moment als een object van één van zijn superklasses (upgecast).

12 (3) Late binding Java werkt altijd via late binding; at runtime wordt altijd de methodedefinitie gebruikt die eigen is aan het object, zelfs al gedraagt dat object zich op dat moment als een object van één van zijn superklasses (upgecast). VB.net en C++ laten de optie toe om vroege binding te gebruiken.

13 (4) Abstracte klassen = klasse met 1 of meerdere abstracte methoden

14 (4) Abstracte klassen = klasse met 1 of meerdere abstracte methoden
Abstracte methode: methode wordt enkel gedeclareerd, niet gedefinieerd.

15 (4) Abstracte klassen = klasse met 1 of meerdere abstracte methoden
Abstracte methode: methode wordt enkel gedeclareerd: public abstract class Demo { public abstract void teken(Graphics g); public int bereken( ) {return x1 + x2;} }

16 (4) Abstracte klassen = klasse met 1 of meerdere abstracte methoden
Abstracte methode: methode wordt enkel gedeclareerd: public abstract class Demo { public abstract void teken(Graphics g); public int bereken( ) {return x1 + x2;} } abstracte methode

17 (4) Abstracte klassen = klasse met 1 of meerdere abstracte methoden
Abstracte methode: methode wordt enkel gedeclareerd: public abstract class Demo { public abstract void teken(Graphics g); public int bereken( ) {return x1 + x2;} } gewone methode

18 (4) Abstracte klassen Abstracte klasse: dient om overgeërfd te worden; ze kan niet geïnstantieerd worden (waarom niet?)

19 (4) Abstracte klassen Abstracte klasse: dient om overgeërfd te worden; ze kan niet geïnstantieerd worden (waarom niet?) Voordeel: abstract dwingt de programmeur van een subklasse om de abstracte method(s) te voorzien.

20 (4) Abstracte klassen Abstracte klasse: dient om overgeërfd te worden; ze kan niet geïnstantieerd worden (waarom niet?) Voordeel: abstract dwingt de programmeur van een subklasse om de abstracte method(s) te voorzien. Zie vb.

21 (5) Multiple inheritance?
Kan in bvb C++. Probleemschets

22 public class Cirkel extends Vorm, Punt {}
- kleur: Color # x: int # y: int + Vorm( Color) + teken (Graphics) + Punt( int, int) + teken (Graphics) Cirkel # straal: int + Cirkel( int, int, int) public class Cirkel extends Vorm, Punt {}

23 (5) Multiple inheritance?
MI bestaat niet in Java.

24 (5) Multiple inheritance?
MI bestaat niet in Java. Nadeel: wil dit zeggen dat elke klasse slechts 1 superklasse kan hebben, met alle gevolgen voor de mogelijkheden om te kunnen upcasten?

25 (5) Multiple inheritance?
MI bestaat niet in Java. Nadeel: wil dit zeggen dat elke klasse slechts 1 superklasse kan hebben, met alle gevolgen voor de mogelijkheden om te kunnen upcasten? Neen: Java gebruikt hiervoor overerving van meerdere interfaces: klassen zonder implementatie (zie volgend uur =P).


Download ppt "Polymorphisme en Interfaces: inleiding"

Verwante presentaties


Ads door Google