Avatar billede mickni33 Nybegynder
29. juni 2006 - 13:29 Der er 5 kommentarer og
1 løsning

polymorfi med abstrakte klasser

Jeg har prøvet at lave noget polymorfi med abstrakte klasser men det funker ikke rigtigt.

-------------------------------------
public abstract class Base {
  public abstract void baseTest();
}
-------------------------------------

public abstract class sub extends Base{
  public abstract void subTest();
}
---------------------------------------

public class SubSub extends sub{
  public void baseTest(){
    //noget kode
  }
   
  public void subTest(){
    //noget kode
  }

  public void metode_Lokalt_I_denneKlasse(){
    //noget kode som kun tilhører denne klasse
  }
}
------------------------------------
main(){
Base base;
base=new SubSub();
base.metode_Lokalt_I_denneKlasse(); // kan ikke lade sig gøre
base.subTest();                    // dette er OK
base.baseTest();                    // dette er OK


pointen er vel at base objektet blir til et SubSub objekt og kan bruge denne klasses metoder.

eller er jeg forkert på den??
Avatar billede mickni33 Nybegynder
29. juni 2006 - 13:31 #1
jeg troede at man godt kunne kalde en metoden metode_Lokalt_I_denneKlasse() selvom den ikke ligger i de klasser der nedarver
Avatar billede mikkelbm Nybegynder
29. juni 2006 - 13:37 #2
Base klassen har kun en enkelt metode du kan kalde: baseTest

Hvis du vil kalde din lokale-sub-metode, så skal du caste din klasse til SubSub.


"base objektet blir til et SubSub"

Nej, sådan kan man ikke sige det. Din SubSub klasse får samme egenskaber som Base-klassen og ikke omvendt.
Avatar billede mickni33 Nybegynder
29. juni 2006 - 13:54 #3
lav lige et svar
Avatar billede mikkelbm Nybegynder
29. juni 2006 - 14:02 #4
Ok.

Er du helt afklaret med det nu? Ellers spørger du bare.
Avatar billede mickni33 Nybegynder
29. juni 2006 - 14:13 #5
jeps det tror jeg... troede bare at når

Base base;
base=new SubSub();
base.metode_Lokalt_I_denneKlasse();
base.subTest();                   
base.baseTest(); 

så kunne man bruge base til at få fat på alle metoderne i SubSub
Avatar billede jakoba Nybegynder
29. juni 2006 - 15:14 #6
Cchek lige en ekstra gang. nedenstående linie burde IKKE være OK.
base.subTest();                    // dette er OK
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