Avatar billede hesus Nybegynder
09. maj 2007 - 18:13 Der er 3 kommentarer og
1 løsning

Javas opfattelse af klasser

Jeg er ved at lave et program med en række felter. Felterne kan være af en række forskellige typer. Disse typer er repræsenteret med forskellige klasser. Samtlige klasser er nedarvet fra en hovedklasse. Der er oprettet et array til at indeholde alle felter, dvs. arrayet er af samme type som hovedklasse. Når jeg trækker felter ud af dette array hvordan får jeg så java til at opfatte det som den underklasse det er, dvs. så jeg kan kalde de funktioner osv som underklassen indeholder?

f.eks.

public class hovedklasse.java{
}

public class underklasse_1.java extends hovedklasse{
}

public class underklasse_2.java extends hovedklasse{
}

hovedklasse[] a = new hovedklasse[X];

a[0] = new underklasse_1();
a[1] = new underklasse_2();

Jeg vil så trække et givent felt ud a[x] og kunne definere det som:

underklasse_1 ny = a[0];
Avatar billede arne_v Ekspert
09. maj 2007 - 18:23 #1
hovedklasse[] a = new hovedklasse[X];
a[0] = new underklasse_1();
a[1] = new underklasse_2();

virker vel

underklasse_1 ny = (underklasse_1)a[0];

ditto *hvis* altsaa der er en 1'er og ikke en 2'er !
Avatar billede hesus Nybegynder
09. maj 2007 - 18:48 #2
Hvor åndssvagt, synes jeg fik en error før fordi den ikke var sikker på at det var den korrekte type.. men ok virker helt fint..! tak for hjælpen! :)
Avatar billede hesus Nybegynder
09. maj 2007 - 18:53 #3
men post lige et svar til pointene
Avatar billede arne_v Ekspert
09. maj 2007 - 18:59 #4
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester