Superklasse Konstruktor

  • Themenstarter Themenstarter wa213
  • Beginndatum Beginndatum
W

wa213

Gast
ich habe ein Problem

ich habe eine abstrakte Superklasse Medien

und eine Subklasse CD und eine Subklasse DVD

ich besitze nun Cds die eine DVD beigepackt haben

Jetzt habe ich Konstruktoren für beide wo ich alle Parameter eingeben muss und würde gerne einen Konstruktor für die Subklasse DVD haben, wo ich nicht nochmal (Titel, Interpret,usw) angeben muss
nur (CD cd, DvdLänge usw).

Der Sinn ist, dass Titel, Interpret, Iban von der angegeben Cd übernommen werden.

Wie geht das?
 
du musst den neuen Konstruktor programmieren:
erst ein p, dann ein u, dann b ...lic DVD(CD cd.......

was spricht dagegen, worin genau siehst du ein Problem?
wenn DVD nichts von CD wissen darf, warum auch immer, dann sicherlich eine Stufe schwieriger
 
Du könntest z.B. von "Medien" noch eine weitere Klasse "CdDvd" ableiten und diese dann entsprechend implementieren. Oder du leitest diese von Cd bzw Dvd ab, je nach dem ob halt der CD eine DVD beigelegt ist oder der DVD eine CD (gibt ja beides).

Vielleicht könnte man auch noch was mit nem Interface basteln, aber wenns unbedingt vererbung sein soll bleibt dir nichts weiter übrig als noch weitere Klassen abzuleiten. Einfach einen weiteren Konstruktor in DVD wäre ziemlich sinnfrei wenn du dieses Objekt dann nicht sinnvoll in deiner CD-Klasse unterbringen könntest.
 
Danke Slaterb, soweit bin ich auch, aber wie sieht das dann weiter aus, wie krieg ich die Werte aus cd in DVD?

nehmen wir an DVD hat bei mir nur die Parameter String Titel, String Interpret, String Iban, int dvdLänge.
Wie würde der Construktor aussehen,wenn Titel Interpret und Iban von der cd stammen:

public DVD (CD cd, int dvdLänge)


Vielen Dank
 
Danke, den construktor von der Superklasse Medien kann ich da jetzt nicht mehr verwenden oder doch?
 
inwiefern, z.B. welche Parameter an den super-Konstruktor gehen, ersparst du dir zu erklären,
immer wieder schön,

geraten Richtung
super(cd.getName(), cd.getXy(), ..);
?
 
Hallo, schön langsam blick ich immer weiter durch, aber warum geht nicht:

Public DVD (CD cd,int DvdLänge) {
DVD(cd.getTitle,cd.getInterpret,cd.getIban,DvdLänge);
}


die Fehlermeldung lautet the Method DVD (String,String,String,Int) is undefined for DVD);

das ist aber genau mein erster KOnstruktor, den müsst ich doch aufrufen können oder?
 
Das muss so lauten:
Java:
public DVD(CD cd,int DvdLänge) {
    this(cd.getTitle,cd.getInterpret,cd.getIban,DvdLänge);
}
 

Zurück
Oben