public class test { public static void main(String args[]) { class Foo { public int i=3;} Object o=(Object) new Foo(); Foo foo=(Foo) o; System.out.println("i="+foo.i); }}以下兩句話為什么不會造成CastExceptionObject o=(Object) new Foo();Foo foo=(Foo) o;
熱心網友
自下而上的強制轉換當然沒有問題(泛化),而自上而下的轉化是有條件的。你程序中的轉化過程是合法,如果寫成: Object o = (Object) new Foo(); BrotherClass class = (BrotherClass) o;就會出現轉化錯誤,當然這里BrotherClass也不是 Foo的父類才行。
熱心網友
CastException是什么哦?不過我理解既然有了隱式轉換就應該不會報錯吧