子類引用的對象轉換為父類類型稱為向上轉型。通俗地說就是是将子類對象轉為父類對象。此處父類對象可以是接口。
向上轉型就是具體類向抽象類的轉換。
文法:父類 對象 = new 子類(); 例如 :Animal hern = new Dog(); //向上轉型
注意:1、向上轉型時,子類單獨定義的方法會丢失。
2、子類引用不能指向父類對象。
向下轉型是把父類對象轉為子類對象。(注意!這裡是有坑的。)
向下轉型就是講抽象類轉換為具體類。
向下轉型後因為都是指向子類對象,是以調用的全是子類的方法
文法:子類 對象 = (子類)父類對象; 例如:Dog hern2 = (Dog)hern; //向下轉型
将父類對象強制轉換為某個子類對象,這種方式稱為顯示類型轉換。
注意: 1、向下轉型的前提是父類對象指向的是子類對象(也就是說,在向下轉型之前,它得先向上轉型)
2、向下轉型隻能轉型為本類對象(貓是不能變成狗的)。
3、子類對象是父類的一個執行個體,但是父類對象不一定是子類的執行個體。
4、如果将父類對象直接賦予子類,會發生編譯器錯誤,因為父類對象不一定是子類的執行個體。