天天看點

引用類型

引用類型轉換:

1.向上類型轉換(隐式/自動類型轉換),是小類型到大類型的轉換。

如:Dog dog=new Dog();Animal animal=dog;//正确,自動類型提升,向上類型轉換

2.向下類型轉換(強制類型轉換),是大類型到小類型的轉換(存在風險,溢出)

如:Dog dog1=(Dog)animal;//向下類型轉換

3.instanceof運算符,來解決引用對象的類型,避免類型轉換的安全性問題。如:

Dog dog=new Dog();

Animal animal=dog;

Cat cat=(Cat)animal;//編譯時不會出錯(按Cat類型進行編譯),但運作時會報錯,因為它開辟的是Dog類型的空間,而(無法将引用類型進行轉換)無法将dog對象轉換成Cat類型,并且此方法對程式的安全性有影響。此時應該利用instanceof和if語句結合使用,進行驗證,以保證程式的安全性,如:

if(animal instanceof Cat){//判斷animal類中是否包含Cat類型的元素,若包含則進行轉換,instanceof傳回值為布爾類型

Cat cat=(Cat)animal;}else{

System.out.println("無法進行類型轉換");}

上一篇: 抽象類
下一篇: 多态

繼續閱讀