Springen naar inhoud

Polymorfisme


  • Log in om te kunnen reageren

#1

benno321

    benno321


  • >25 berichten
  • 39 berichten
  • Gebruiker

Geplaatst op 20 januari 2013 - 14:58

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

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 20 januari 2013 - 15:23

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.

#3

benno321

    benno321


  • >25 berichten
  • 39 berichten
  • Gebruiker

Geplaatst op 20 januari 2013 - 15:28

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?

#4

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 20 januari 2013 - 15:36

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.

#5

Kwintendr

    Kwintendr


  • >250 berichten
  • 768 berichten
  • VIP

Geplaatst op 20 januari 2013 - 15:56

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!

#6

benno321

    benno321


  • >25 berichten
  • 39 berichten
  • Gebruiker

Geplaatst op 20 januari 2013 - 15:58

Dank u voor de antwoorden, ik snap het nu





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures