benno321
Artikelen: 0
Berichten: 39
Lid geworden op: do 03 jan 2013, 10:20

Polymorfisme

Zou iemand mij polymorfisme eens kunnen uitleggen, want op internet heb ik gezocht maar ik begrijp het nog altijd niet. Met polymorfisme bedoel ik polymorfisme dat wordt gebruikt bij java met overerving.

Alvast bedankt

benno321
Gebruikersavatar
Xenion
Artikelen: 0
Berichten: 2.609
Lid geworden op: za 21 jun 2008, 10:41

Re: Polymorfisme

Kijk eens naar het voorbeeld op wikipedia.

Je hebt een klasse Animal die heel algemene eigenschappen en acties van een dier kan beschrijven. Er is een methode talk(), maar elk dier zegt natuurlijk iets anders.

In OO is het mooi om voor verschillende dieren een subklasse aan te maken. Je maakt dan voor katten en honden klasses aan die Animal extenden. Je kan dan in beide klassen de talk() methode overloaden zodat katten "Miauw" printen en honden "Woef".

Op die manier kan je dieren heel algemeen behandelen. Stel dat je een Persoon klasse hebt en een persoon kan een lijst van huisdieren hebben. Dat is een object van het type List<Animal>. Daar kunnen dan zowel katten als honden inzitten en afhankelijk van welk huisdier je aanspreekt zal de talk() methode een ander resultaat geven.

Een ander voorbeeld. Beschouw een inventory in een computerspelletje. Alle dingen in een inventory kunnen geïmplementeerd zijn als een klasse Item. Daar zijn dan een aantal gemeenschappelijke dingen zoals 'Drop' en 'Sell' ofzo, maar veel items hebben ook een 'Use' actie. Een zwaard en een health potion droppen doet hetzelfde, maar de use actie van beide moet uiteraard verschillend zijn.
benno321
Artikelen: 0
Berichten: 39
Lid geworden op: do 03 jan 2013, 10:20

Re: Polymorfisme

Ik dacht dat hetgeen waar je het nu over hebt dynamische binding noemt.

Wat is dan dynamische binding en het verschil tussen polymorfisme en dynamische binding?
Gebruikersavatar
Xenion
Artikelen: 0
Berichten: 2.609
Lid geworden op: za 21 jun 2008, 10:41

Re: Polymorfisme

Polymorfisme is het concept dat je gelijkaardige objecten kan behandelen met een zelfde interface. Dynamic binding is het mechanisme dat dit mogelijk maakt. Bij compile time kan je op geen enkele manier weten welke subklasse van dier je aan het gebruiken bent. Dynamic binding zal at runtime de juiste methode opzoeken afhankelijk van het object type.
Gebruikersavatar
Kwintendr
Artikelen: 0
Berichten: 768
Lid geworden op: vr 12 jun 2009, 16:27

Re: Polymorfisme

Onder polymorfisme verstaan we algemeen het feit dat verschillende eintiteiten toch eenzelfde naam kunnen hebben, omdat ze een zekere (zij het soms abstracte) verwantschap vertonen. Je kan in JAVA verschillende vormen van polymorfisme beschouwen:

-) polymorfisme tussen klassen:

actie- en gegevenselementen kunnen in verschillende klassen een identieke naam krijgen. Een voorbeeld is een toString methode in een klasse. Je kan in verschillende klassen een toString methode hebben, en allemaal hebben ze dezelfde naam, hoewel ze toch een andere uitvoer geven.

-) polymorfisme tussen een klasse en zin afgeleide klasse:

Hierbij denken we dan een methode-pverschijven. Dit laat toe in een afgeleide klassen een taak nauwkeuriger en concreter te beschrijven dan in de superklasse het geval is.
Het Wetenschapsforum heeft ook een facebook pagina!
benno321
Artikelen: 0
Berichten: 39
Lid geworden op: do 03 jan 2013, 10:20

Re: Polymorfisme

Dank u voor de antwoorden, ik snap het nu

Terug naar “Informatica en programmeren”