Methode zur Konvertierung von Oberklasse in Unterklasse

DannyG

Mitglied
Hi!
bin neu hier im Forum und habe da folgendes Problem:

Ich muss eine Methode erstellen zu Konvertierung einer Klasse in eine andere Klasse...
Da diese ähnlich sind habe ich mir gedacht dass das mit Up- bzw. Downcasting gut funktionieren müsste.
Nur wie kann ich allgemein this downcasten?
this an sich ist ja kein variable und auch kein Object, also wie kann ich allgemein DIESES Objekt downcasten?

Wäre für paar Ideen und Vorschläge dankbar 🙂

MFG
 
Willkommen im Forum!
Da diese ähnlich sind habe ich mir gedacht dass das mit Up- bzw. Downcasting gut funktionieren müsste.
Mit Ähnlichkeit allein wirst du nicht weit kommen. Stehen die sonst in irgendeiner Beziehung (Class A extends B)?
this an sich ist ja kein variable und auch kein Object, also wie kann ich allgemein DIESES Objekt downcasten?

this kannst du (sinnvoll) auch nicht casten. Wozu auch?
Vllt solltest du mehr beschreiben was du versuchst zu erreichen und auch Code posten.
 
Zuletzt bearbeitet:
wo ist da ein Problem?
Java:
public class Test {
    public static void main(String[] args)  {
        new B(); // geht gut aus
        new A(); // wird Exception heraufbeschwören
    }
}

class A {
    public A()  {
        B b = (B)this;
        System.out.println(b);
    }
}

class B  extends A {}
 
wenn ich jetzt sagen wir mal 1 Objekt a1 der Klasse A erzeuge. Und dann a1.konvertiere() aufrufe, soll A dann die erweiterten /geänderten Eigenschaften von der Klasse B haben. (B erbt von A). und dann durch a1.andereMethode() Methoden der Klasse B verwenden können....

natürlich B extends A...
so dass ein downcast, upcast möglich ist....

@SlaterB, nach aussen hin wüsste würde ja a1 trotzdem Instanz der Klasse A bleiben und ich wüsste ja nicht von aussen dass b existiert.....

Ziel ist es ein eine EndlicheMenge und eine BegrenzteMenge darzustellen, diese stehen ja unmittelbar in beziehung. EndlichMenge wäre "enthält die Elemente x, y, ,z", BegrenzteMenge "enthält alle Elemente bis auf "x, y ,z". Bei einer BegrenztenMenge werden ja durchschnitt usw. ja anders berechnet.....

Das mit der Vererbung war ne Idee von mir, da so eine Konvertierung ja nur bei Vererbung möglich ist...
 
Zuletzt bearbeitet:
Ne, das klappt nicht so wie du es willst.
Du kannst aber einen Konstruktor der BegrenzteMenge erstellen, dem du ein Objekt der EndlicheMenge übergibst. Der kann sich dann die Werte rausziehen die du willst.
 
ja das hat mich auch ein bisschen verwundert 😀 So stehts auf nem Übungsblatt fürs Studium....

Zitat vom Übungsblatt:
Aufbauend auf EndlicheMenge entwerfen Sie nun die Klasse BegrenzteMenge. Diese Klasse
soll die gleiche Funktionalitat bieten wie EndlicheMenge. Dabei ist zu beachten, dass die
Parameter- und Ruckgabetypen der Methoden entsprechen angepasst werden mussen. Ebenso
werden die Größenbeschrankungen bei den binaren Operationen abhangig davon, ob die beteiligten
BegrenzteMenge-Objekte momentan eine endliche Menge darstellen, oder deren Komplement.
Zusatzlich soll die folgende Methode implementiert werden:
public void komplement()
Invertiert die aktuelle Menge. Durch diese Operation wird also zwischen der
"
Nur die Elemente
x, y, z\- und der
"
Alle Elemente bis auf x, y, z\-Darstellung umgeschaltet.
 

Zurück
Oben