引用類型轉換java
1.向上類型轉換(隱式/自動類型轉換),是小類型到大類型的轉換。安全
2.向下類型轉換(強制類型轉換),是大類型到小類型,有必定的安全性問題。code
3.instanceof運算符,用來解決引用對象類型,避免類型轉換的安全性問題。對象
舉例以下:編譯
package Java2_3; /** * Animal爲父類,Dog與Cat爲子類。 * @author qiang * */ public class Test2 { public static void main(String[] args) { // TODO Auto-generated method stub Dog dog = new Dog(); Animal animal = dog;//自動類型提高或叫向上類型轉換 if(animal instanceof Dog){ Dog dog2 = (Dog)animal;//向下類型轉換 System.out.println("轉換了!"); }else{ System.out.println("沒法進行類型轉換!"); } if(animal instanceof Cat){ //1.編譯時Cat類型 2.運行時Dog類型 ; //編譯時不會報錯,但運行時會,由於不是兩個類型不匹配 Cat cat = (Cat)animal; }else{ System.out.println("沒法進行類型轉換!"); } } }
運行結果爲class
轉換了! 沒法進行類型轉換!