[UML] multiple inheritance, polymorfisme, overriding.

Pagina: 1
Acties:
  • 130 views sinds 30-01-2008
  • Reageer

  • knackje
  • Registratie: Oktober 2003
  • Laatst online: 02-04 06:53
Hallo,

Heb al zitten zoeken maar krijg niet echt een duidelijk antwoord. Ik ben op zoek naar een duidelijke betekenis en wat je er mee kan van de volgende 3 uml termen


overriding
polymorfisme
multiple inheritance

Wat weet ik ervan:

overriding: ?

polymorfisme: wanneer een subklasse dingen geerft heeft van een superklasse. je kan deze geerfde dingen niet verwijderen zonder de dingen uit de superklasse te verwijder.

multiple inheritance:wanneer een klas van meerder hoodklasse erft

Ik hoop dat iemand het mij kan uitleggen

Knackje

  • sjink
  • Registratie: Oktober 2002
  • Laatst online: 03-02-2025
Overriding is herdefinieren van een methode dus als je een subklasse een methode uit de superklasse een andere implemenatie geeft.

*blup*


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Polymorphism is een veel algemener principe. Zie de Wikipedia:

Polymorphism (computer science)

[ Voor 15% gewijzigd door mbravenboer op 21-06-2004 13:43 ]

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • knackje
  • Registratie: Oktober 2003
  • Laatst online: 02-04 06:53
sjink schreef op 21 juni 2004 @ 13:38:
Overriding is herdefinieren van een methode dus als je een subklasse een methode uit de superklasse een andere implemenatie geeft.
Wat je dus zegt is dat het gaat om overriding als je methode van een subklasse wijzigt aan die van de superklasse. Of begrijp ik je zin niet goed.

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:50
Het zijn geen UML termen, maar OO termen.

Overriding is wat sjink al aangeeft. In je subclass override je een bepaalde (virtual) method. Je veranderd dus eigenlijk de implementatie van die method voor die subclass.

Met polymorphisme kan je aan 'late' binding doen; pas bij het uitvoeren van de code wordt er bepaald (kan er bepaald worden) welke method van welke (sub) class er moet uitgevoerd worden.
Polymorphisme is één van de dingen die OO zo krachtig maakt.

Overriding en polymorphisme zijn ook nauw aan elkaar gerelateerd:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Persoon
{
    public virtual string Say()
    {
          return "ik ben een persoon";
    }
}

public class Werkgever : Persoon
{
    public override string Say()
    {
         return "ik ben een werkgever";
    }
}

Hier wordt de Say method dus overriden.

Als je nu deze code uitvoert:
code:
1
2
3
4
Persoon p = new Persoon();
MessageBox.Show (p.Say());
Werkgever w = new Werkgever();
MessageBox.Show(w.Say());


Dan krijg je als output:
ik ben een persoon
ik ben een werkgever

Met polymorphisme kan je dit verkrijgen:
code:
1
2
Persoon p = new Werkgever();
p.Say();

Waardoor de output:
Ik ben een werkgever
is.

[ Voor 82% gewijzigd door whoami op 21-06-2004 13:50 ]

https://fgheysels.github.io/


  • knackje
  • Registratie: Oktober 2003
  • Laatst online: 02-04 06:53
bedankt voor deze uitleg. Het is nu al een stuk duidelijker geworden.

Bedankt voor alle snelle reacties

knackje

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
De meest ingewikkelde manier die ik ondertusen ben tegengekomen om multiple inheritance en overriding uit te leggen: http://www.cs.uu.nl/docs/vakken/exp/hc11-frames.pdf :o
hoewel ik de formalisatie wel goed vind

[ Voor 13% gewijzigd door Infinitive op 21-06-2004 21:34 ]

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]

Pagina: 1