1 van 1

Overloading

Geplaatst: wo 25 mei 2011, 21:22
door In physics I trust
Hallo,

Ik heb een superclass en twee subclasses ervan. Neem om de gedachten te fixeren bijvoorbeeld een klasse Dier en een subclass Hond en Koe. Beide subclasses hebben de eerste twee argumenten (parameters) hetzelfde (bijvoorbeeld int aantalpoten, int leeftijd), en dan elk nog twee argumenten (parameters) verschillend (bijvoorbeeld een String Ras voor de hond en een int Gewicht voor de koe).

Bedoeling is dat de gebruiker er in moet slagen om met één enkele functie, zo een dier aan te maken. Dat kan perfect door één enkele functie, want beide dieren onderscheiden zich door het type van de laatste parameters: bij de koe is het een int en bij de hond een String. De compiler kan dus aan de meegegeven argumenten weten of hij een koe of een hond moet aanmaken.

Ik weet dus niet goed hoe ik de functie MaakDier(int gemeenschappelijk1, int gemeenschappelijk2, type afhankelijkvandier) er moet laten uitzien zodat deze automatisch, afhankelijk van wat je eraan meegeeft, een Koe of Hond aanmaakt. Het principe is overloading, maar ik weet niet hoe ik het concreet in elkaar boks...

Alvast bedankt!

Als er iets te vaag is, zeg gerust!

Re: Overloading

Geplaatst: wo 25 mei 2011, 22:17
door ZVdP
Bedoel je dit:

Code: Selecteer alles

function Dier maakDier(int a,int b,int c)

{

   return new Koe(a,b,c);

}

function Dier maakDier(int a,int b,String c)

{

   return new Hond(a,b,c);

}

Re: Overloading

Geplaatst: wo 25 mei 2011, 23:09
door In physics I trust
Bedankt!

Zou je ook binnen de klasse Dier ervoor kunnen zorgen dat je een Hond of Koe aanmaakt naargelang je een int of String meegeeft? Dus dat je met Dier mijndier = new Dier(argumenten) afhankelijk van die argumenten eigenlijk een new Hond of new Koe uitvoert?

Re: Overloading

Geplaatst: wo 25 mei 2011, 23:56
door 317070
Zou je ook binnen de klasse Dier ervoor kunnen zorgen dat je een Hond of Koe aanmaakt naargelang je een int of String meegeeft? Dus dat je met Dier mijndier = new Dier(argumenten) afhankelijk van die argumenten eigenlijk een new Hond of new Koe uitvoert?
Dat klinkt als heel vuil programmeerwerk, waarom zou je ooit zoiets willen doen? Normaal gezien weet je in je code altijd of je een Koe of een Hond nodig hebt, aja, want de type dat je meegeeft staat veruit altijd hard geprogrammeerd in je code.

Verder is het volgens mij onmogelijk om te doen in Java, in andere talen weet ik het niet.

Re: Overloading

Geplaatst: do 26 mei 2011, 00:30
door In physics I trust
Dat klinkt als heel vuil programmeerwerk.
Inderdaad. En nutteloos bovendien ;) Stom van me.