一個子類,比方說:創建從超
class A {
public int fieldA = 0;
}
class B extends A {
public int fieldB = 0;
}
現在,我想從一個創造B的一個實例:
A a = new A();
B b = (B) new A();
這給了一個ClassCastException。我可以在B中的costructor,需要一個一個實例和複製領域,但它顯然是非之實踐:
class B extends A {
public int fieldB = 0;
B (A a){
fieldA = a.fieldA;
}
}
謝謝您的幫助
究竟是什麼問題?很明顯,你不能假裝任何對象都是一個List,一個Car或一個Socket。所以如果你想要一輛汽車,你必須創造一輛汽車。創建一個對象並將其投射到汽車上不會神奇地使它成爲汽車。 –
[顯式從超類轉換爲子類]的可能重複(http://stackoverflow.com/questions/4862960/explicit-casting-from-super-class-to-subclass) –