13. december 2001 - 01:01Der er
8 kommentarer og 1 løsning
Abstracte klasser og nedarvning
hejsa. Jeg har flg. klasser
KundeContainer public class KundeContainer { private LinkedList liste;
public void tilføjKunde(Kunde kunde) { liste.addLast(kunde); } }
Og en KunderADT public abstract class KunderADT extends KundeContainer implements Kundecontainer { }
Og en konkret implementation af kunderADT: public class KunderDB extends KunderADT implements Kundecontainer { public void tilføjKunde(Kunde kunde) { if (connection!=null) { // en masse db halløj } // her skal kunde tilføjes til den liste der findes.
tilføjKunde(kunde); eller super.tilføjKunde(?!?); eller hvad? } } }
Mit problem er at jeg ikke er sikker på hvilken tilføj kunde der kalde. Jeg skal både skrive i databasen og kalde den original tilføjKunde der findes på KundeContainer.
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
public class KundeContainer { private LinkedList liste;
public void tilføjKunde(Kunde kunde) { liste.addLast(kunde); } }
public abstract class KunderADT extends KundeContainer {}
public class KunderDB extends KunderADT { public void tilføjKunde(Kunde kunde) { if (connection!=null) { // en masse db halløj } // her skal kunde tilføjes til den liste der findes.
Grunden til det er at jeg har et GUI der tager en container med i constructoren. Denne container skal gerne være så generel som muligt, så jeg bare kan nedarve fra den, uden at skulle ændre i programkoden.
KunderDB, KunderFIL, KunderHulstrimmel etc. Kundercontainer og KundeContainer er også uheldigt valgte navne.
interfacet (Kundecontainer med lille \'c\')indeholder nogle metoder der bl.a. skal kunen håndtere at hente data ind fra datakilden, gemme dem igen, søge i datakilden. etc.
selve klassen (KundeContainer med stort \'C\') pakker sådant set bare en ArrayList pænt ind, så man ikke ser at det er en ArrayList.
Har faktisk prøvet med super.super, men det gik ikke. Så jeg implementerede den metode i min ADT.
Synes godt om
Ny brugerNybegynder
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.