Java中instanceof關(guān)鍵字實例講解
1.向上轉(zhuǎn)型 向下轉(zhuǎn)型

2.強制類型轉(zhuǎn)換的應用
應用多態(tài)性時由于引用為父類類型,導致編譯時只能調(diào)用父類中聲明的屬性和方法。子類特有的屬性和方法不能調(diào)用。因此可將父類引用強制轉(zhuǎn)換為子類引用,則可調(diào)用子類特有方法。
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 關(guān)鍵字使用
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無子父類關(guān)系 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.強制類型轉(zhuǎn)換成功總結(jié)
子類賦值給直接父類引用(多態(tài)),然后直接父類引用再強制轉(zhuǎn)換成子類子類賦值給間接父類引用(多態(tài)),然后間接父類引用可以強制轉(zhuǎn)換成子類或者子類的父類

到此這篇關(guān)于Java中instanceof關(guān)鍵字實例講解的文章就介紹到這了,更多相關(guān)Java instanceof關(guān)鍵字內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java中instanceOf關(guān)鍵字的用法及特性詳解
- Java深入講解instanceof關(guān)鍵字的使用
- Java關(guān)鍵字之instanceof詳解
- Java instanceof關(guān)鍵字用法詳解及注意事項
- java中instanceof 關(guān)鍵字作用和實際用途詳解
- Java關(guān)鍵字instanceof用法及實現(xiàn)策略
- Java關(guān)鍵字instanceof的兩種用法實例
- Java instanceof關(guān)鍵字的的進一步理解
- Java中instanceof關(guān)鍵字的用法總結(jié)
- Java中instanceof 關(guān)鍵字的使用
相關(guān)文章
SpringBoot快速集成jxls-poi(自定義模板,支持本地文件導出,在線文件導出)
這篇文章主要介紹了SpringBoot快速集成jxls-poi(自定義模板,支持本地文件導出,在線文件導出),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09
Java中Map與JSON數(shù)據(jù)之間的互相轉(zhuǎn)化
我們在開發(fā)中難免和JSON打交道,這不小編最近遇到了,需要把一些信息轉(zhuǎn)成JSON字符串,下面這篇文章主要給大家介紹了關(guān)于Java中Map與JSON數(shù)據(jù)之間的互相轉(zhuǎn)化,需要的朋友可以參考下2023-04-04
深入Ajax代理的Java Servlet的實現(xiàn)詳解
本篇文章是對Ajax代理的Java Servlet的實現(xiàn)方法進行了詳細的分析介紹,需要的朋友參考下2013-06-06
使用mybatis的@Interceptor實現(xiàn)攔截sql的方法詳解
攔截器是一種基于 AOP(面向切面編程)的技術(shù),它可以在目標對象的方法執(zhí)行前后插入自定義的邏輯,本文給大家介紹了使用mybatis的@Interceptor實現(xiàn)攔截sql的方法,需要的朋友可以參考下2024-03-03
intelliJ idea 2023 配置Tomcat 8圖文教程
這篇文章主要介紹了intelliJ idea 2023 配置Tomcat 8教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06
SparkSQL使用IDEA快速入門DataFrame與DataSet的完美教程
本文給大家介紹使用idea開發(fā)Spark SQL 的詳細過程,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2021-08-08

