Hallo,
ich habe folgende Klassen, abstracte Klassen und Interface zur Verfügung
und muss
ein Diagramm zeichnen sowie einige Zuweisungen überprüfen:
interface A { }
abstract class B implements A { }
interface C extends A { }
class D extends B implements C { }
class E extends B { }
class F implements C { }
Das Diagramm habe ich bereits gezeichnet (hoffe es stimmt.)
nun muss ich folgende Zuweisungen als gültig oder ungültig angeben
(handelt sich um static casts):
void c1()
{
D d = new D();
A a = d;
B b = d;
C c = d;
E e = d;
F f = d;
}
void c2()
{
F f = new F();
A a = f;
B b = f;
C c = f;
D d = f;
E e = f;
}
void c3()
{
E e = new E();
A a = e;
B b = e;
C c = e;
D d = e;
F f = e;
}
void c4()
{
B b = new D();
A a = b;
C c = b;
D d = b;
E e = b;
F f = b;
}
void c5()
{
C c = new D();
A a = c;
B b = c;
D d = c;
E e = c;
F f = c;
}
void c6()
{
C c = new F();
A a = c;
B b = c;
D d = c;
E e = c;
F f = c;
}
Man darf ja einer Basisklasse eine Unterklasse zuweisen, wie ist es aber
wenn ich zum
Beispiel C c = new F() habe? darf ich dann z.B A a = c zuweisen?
Ich bin auf folgendes gekommen:
void c1()
{
D d = new D(); gültig
A a = d; ungültig
B b = d; ungültig
C c = d; ungültig
E e = d; ungültig
F f = d; ungültig
}
void c2()
{
F f = new F();gültig
A a = f; ungültig
B b = f; ungütlig
C c = f; ungültig
D d = f; ungütlig
E e = f; ungütlig
}
void c3()
{
E e = new E();gültig
A a = e; ungültig
B b = e; ungültig
C c = e; ungültig
D d = e; ungültig
F f = e; ungültig
}
void c4()
{
B b = new D();gültig
A a = b; ungültig
C c = b; ungültig
D d = b; gültig
E e = b; ungültig
F f = b; ungültig
}
void c5()
{
C c = new D();gültig
A a = c; ungültig
B b = c; ungültig
D d = c; gültig
E e = c; ungültig
F f = c; ungültig
}
void c6()
{
C c = new F();gültig
A a = c; ungültig
B b = c; ungültig
D d = c; ungültig
E e = c; ungültig
F f = c; gültig
}
ich bin auf das gekommen, ist das richtig?
Der Java-Compiler und die Java-Runtime deines Vertrauens können dir diese Frage durch ausprobieren beantworten.
Dein Diagramm von
interface A { }
abstract class B implements A { }
interface C extends A { }
class D extends B implements C { }
class E extends B { }
class F implements C { }
kannst du mit Eclipse überprüfen, markieren und dann ctrl + T die
Hirarchie anzeigen lassen
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
