Java中instanceof關鍵字實例講解
1.向上轉型 向下轉型
2.強制類型轉換的應用
應用多態(tài)性時由于引用為父類類型,導致編譯時只能調用父類中聲明的屬性和方法。子類特有的屬性和方法不能調用。因此可將父類引用強制轉換為子類引用,則可調用子類特有方法。
class Animal { public void shout() { System.out.println("Animal is shouting "); } } class Dog extends Animal { public void shout() { System.out.println("汪 汪 汪"); } public void skill() { System.out.println("Dog can guard home"); } } class Cat extends Animal { public void shout() { System.out.println("喵 喵 喵"); } } public static void main(String [] args) { Animal animalD =new Dog(); // animalD.skill() 報錯,因為Animal類無skill方法 Dog dog=(Dog)animalD; dog.skill(); //輸出 Dog can guard home }
3.instanceof 關鍵字使用
a instanceof A : 判斷對象a是否是類A的實例。如果是,返回true;否則返回false。
public static void main(String [] args) { Animal animalD =new Dog(); if(animalD instanceof Dog) { System.out.println("true");//輸出true } }
4.測試舉例
編譯通過,運行不通過
Animal animal=new Dog(); Cat cat=(Cat)animal // 因為Cat和Dog無子父類關系 Animal animal=new Animal(); Dog dog=(Dog)animal; //animal必須指向Dog類或Dog類子類
編譯不通過
Dog dog=new Cat(); //直接不符合多態(tài)性定義
編譯通過,運行通過
Object object=new Dog(); Animal animal=(Animal)object
5.強制類型轉換成功總結
子類賦值給直接父類引用(多態(tài)),然后直接父類引用再強制轉換成子類子類賦值給間接父類引用(多態(tài)),然后間接父類引用可以強制轉換成子類或者子類的父類
到此這篇關于Java中instanceof關鍵字實例講解的文章就介紹到這了,更多相關Java instanceof關鍵字內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot+MybatisPlus+Mysql+Sharding-JDBC分庫分表
本文主要介紹了SpringBoot+MybatisPlus+Mysql+Sharding-JDBC分庫分表,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03BeanUtils.copyProperties擴展--實現(xiàn)String轉Date
這篇文章主要介紹了BeanUtils.copyProperties擴展--實現(xiàn)String轉Date操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06