30. august 2002 - 12:44Der er
7 kommentarer og 1 løsning
Kald af metoder i sub-klasse.
Jeg har fx. følgende klasser.
Dyr (super-klasse) Giraf (sub-klasse af Dyr) Tiger (sub-klasse af Dyr)
I Giraf-klassen er en metode flygt(), og i Tiger-klassen er en metode angrib().
I programmet erklærer jeg så følgende:
Dyr[] DyrTabel = new Dyr[2]; Dyr[0] = new Giraf(); Dyr[1] = new Tiger();
Det jeg ønsker er så at kunne gennemløbe arrayet og kalde flygt-metoden hvis det aktuelle element er en giraf og angrib-metoden hvis elementet er en tiger. Noget i stil med:
for (int i = 0; i < 2; i++) { if (Dyr[i] = en giraf) Dyr[i].flygt(); if (Dyr[i] = en tiger) Dyr[i].angrib(); }
Har tænkt på om der findes noget i stil med dynamic_cast fra C++, men har fundet noget.
Ellers kunne du jo, i nedarvningens ånd :), lave en metode i Dyr som hed handling(), og lade giraf og tiger nedarve denne, med hver sin implementering...
Synes godt om
Slettet bruger
30. august 2002 - 13:25#5
Jeg kan stadig ikke kalde flygt-metoden.
Er der en måde hvorpå man kan konvertere et objekt af typen dyr til fx. et objekt af typen giraf?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.