Zuweisung Interface

Viktim

Bekanntes Mitglied
Gibt es denn Irgendwas was du schon weißt oder peilst du das komplett nicht?
Wenn du was verstanden hast, und schon einen Ansatz hast, dann sind konkrete Fragen glaub ich besser :D
 

TechGirl

Mitglied
Ne gar nicht also für mich ist es wichtig, dass ich die Lösungen der Aufgabe habe sind sehr wichtig.
Daher wäre ich echt sehr dankbar, wenn sich jemand dafür Zeit nehmen könnte :(
 

JStein52

Top Contributor
1.) richtig weil meinB eine Instanz von B ist und b implementiert ISchnitt
2.) richtig weil meinSubB eine Instanz von SubB ist und diese wiederum Subklasse von SuperAB
3.) ..... kommst du jetzt weiter ?
 

Jardcore

Top Contributor
ref ist einfach ein Name für eine Varibale.
Java:
B meinB = new B();
ISchnitt ref = meinB;
B ist der Klassenname, meinB ist der Name der Variable.
Man könnte das nun so lesen:
meinB ist vom Typ B und diesem weise ich ein neues Objekt vom Typ B zu (new B())
ref ist vom Typ ISchnitt und der Variable ref weise ich meinB zu.
Das geht weil die Klasse B das Interface ISchnitt implementiert.

Das ist oben links in deinem Bild zu sehen.
 

TechGirl

Mitglied
ref = meinB; ist richtig
meinAB = meinSubB; ist richtig
meinSubB.draw("hallo"); ist falsch - größerer Typ in kleineren
meinB = meinSubB.drop(); ist richtig
meinSubB = meinB.drop(); ist falsch - größerer Typ in kleineren
meinSuperAB = meinB.drop(); ist richtig
meinA = new SuperAB(); ist falsch - größerer Typ in kleineren
refab = meinSubB.draw("hallo"); ist richtig

Das wären die Lösungen ist jemand damit nicht einverstanden?
 
X

Xyz1

Gast
ref = meinB; ist richtig
meinAB = meinSubB; ist richtig
meinSubB.draw("hallo"); ist falsch - größerer Typ in kleineren
meinB = meinSubB.drop(); ist richtig
meinSubB = meinB.drop(); ist falsch - größerer Typ in kleineren
meinSuperAB = meinB.drop(); ist richtig
meinA = new SuperAB(); ist falsch - größerer Typ in kleineren
refab = meinSubB.draw("hallo"); ist richtig

Jetzt steht die halbe PN im Internet. :( Eine Begründung für jede Frage/Antwort müsstest du dir herleiten (können).
 

Jardcore

Top Contributor
Ich schon, aber möchte eher wissen ob TE die Aufgabe auch verstanden hat und nicht nur einfach die Lösung präsentiert bekommt. Abschreiben hat noch nie jemanden geholfen.
 
X

Xyz1

Gast
Bei TO fehlen bei Vererbung noch Pfeile. So schaut's bei mir:

ep.png

Java:
public class Temp {
    public static void main(String[] args) {
        A meinA = new A();
        B meinB = new B();
        SubA meinSubA = new SubA();
        SubB meinSubB = new SubB();

        ISchnitt ref = meinB;
        SuperAB meinAB = meinSubB;
        // meinSubB = meinSubB.draw("hallo");
        meinB = meinSubB.drop();
        // meinSubB = meinB.drop();
        SuperAB meinSuperAB = meinB.drop();
        // meinA = new SuperAB();
        SuperAB refab = meinSubB.draw("hallo");
    }
}

interface ISchnitt {
    SuperAB draw(String s);
    B drop();
}

class SuperAB {
    public void plot() {
    }
}

class A extends SuperAB {
    @Override
    public void plot() {
    }
}

class SubA extends A {
    @Override
    public void plot() {
    }
}

class B extends SuperAB implements ISchnitt {
    @Override
    public void plot() {
    }
    @Override
    public SuperAB draw(String s) {
        return this; // can return SubB
    }
    @Override
    public B drop() {
        return this; // can return SubB
    }
}

class SubB extends B {
    @Override
    public SuperAB draw(String s) {
        return super.draw(s);
    }
    @Override
    public B drop() {
        return super.drop();
    }
}
richtig/falsch müsstest du erkennen, falsch ist auskommentiert.

Bin ich bereit zu kommentieren? Jaein. :D
Begründung bitte selber bearbeiten.
 
X

Xyz1

Gast
So hab ich es zwar noch nie gehört, aber ich glaube du machst es richtig.

Eine genaue Begründung/Erklärung wirst du von mir nicht bekommen,
PNs wurden veröffentlicht, als sei das nicht richtig, was ich schrieb. :D
 

TechGirl

Mitglied
So hab ich es zwar noch nie gehört, aber ich glaube du machst es richtig.

Eine genaue Begründung/Erklärung wirst du von mir nicht bekommen,
PNs wurden veröffentlicht, als sei das nicht richtig, was ich schrieb. :D
Es tut mir sehr leid, aber ich sah da keinen Grund warum man es nicht veröffentlichen sollte, da es nichts privates dabei ist.

Ich meine die User wollten sich auch die Lösung ansehen. Das war der einzige Grund. Es tut mir leid
 

Meniskusschaden

Top Contributor
Ich glaube, sofern der Absender den Inhalt nicht als vertraulich gekennzeichnet hat und auch keine anders lautende Vereinbarung mit dem Empfänger getroffen hat, darf der rechtmässige Empfänger einer PN sie veröffentlichen. Ich sehe darin kein Fehlverhalten und auch keinen Grund für ein schlechtes Gewissen.
 
X

Xyz1

Gast
die linke Klasse (seite) muss hierarchisch über der zugewiesenen klasse also was nach dem = als klasse steht stehen?

Deine Antwort geht schon in die richtige Richtung. Wie weit bist du denn jetzt, und wo läuft nicht?

Also eine Erklärung/Begründung vorgeben, mach ich nicht (teilweise hab ich ja schon, aber sehr rar).

Und PN's heißen PN's, weil sie PN's heißen. :D Das ist trivial und selbstverständlich und natürlich.

Aber ich verurteile deshalb nicht.
 

Neue Themen


Oben