我已經搜索到了這一點,但仍然存在混淆。無法理解在Java中的用戶定義的類和標準類中的Casting差異
下面是示例Standered類
public class Q {
public static void main(String... str){
Number b = 10;
Integer i = (Integer)b; // Workes Fine
}
}
的鑄造的下面是示例性用戶定義的類
class H{}
class I extends H{}
public class Q extends I{
public static void main(String... str){
I i = (I)new H(); //Show runtime java.lang.ClassCastException
}
}
的鑄造的上面是繼承的例子。這樣的:
- 整數擴展號碼
- 我延長^ h
爲什麼整數i =(整數)B工作和我I =(I)新的H()不?
這是一個可愛的小教程,以幫助你明白你正在嘗試做的:http://forum.codecall.net/topic/50451-upcasting-向下轉換/ –