Lassen Sie uns sagen, dass Class B
erstreckt class A
und class A
klonbar ist wie folgt:Java - gesenkten in Klon
public class A implements Cloneable {
public Object clone() throws CloneNotSupportedException {
A ac = (A) super.clone();
return ac;
}
}
public class B extends A {
public Object clone() throws CloneNotSupportedException {
B a = (B) super.clone();
return a;
}
}
Warum es legal ist, von A nach B in der nächsten Zeile auszuführen gesenkten:
B a = (B) super.clone(); // (super of B is A)
während der nächste Downcast ist Laufzeitfehler?
Vielen Dank im Voraus!
Meinst du 'B b = new B();' und 'A a = (A) b.clone();' zufällig? – blalasaadri
Ausgezeichnete Frage zu Klon(), es war eine Sache, die ich auch nicht um den Kopf wickeln konnte. – raiks