溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java中如何使用instanceof關(guān)鍵字

發(fā)布時(shí)間:2022-01-25 09:02:40 來(lái)源:億速云 閱讀:140 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇“Java中如何使用instanceof關(guān)鍵字”文章,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要參考一下,對(duì)于“Java中如何使用instanceof關(guān)鍵字”,小編整理了以下知識(shí)點(diǎn),請(qǐng)大家跟著小編的步伐一步一步的慢慢理解,接下來(lái)就讓我們進(jìn)入主題吧。

1.向上轉(zhuǎn)型 向下轉(zhuǎn)型

Java中如何使用instanceof關(guān)鍵字

2.強(qiáng)制類(lèi)型轉(zhuǎn)換的應(yīng)用

應(yīng)用多態(tài)性時(shí)由于引用為父類(lèi)類(lèi)型,導(dǎo)致編譯時(shí)只能調(diào)用父類(lèi)中聲明的屬性和方法。子類(lèi)特有的屬性和方法不能調(diào)用。因此可將父類(lèi)引用強(qiáng)制轉(zhuǎn)換為子類(lèi)引用,則可調(diào)用子類(lè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() 報(bào)錯(cuò),因?yàn)锳nimal類(lèi)無(wú)skill方法
		Dog dog=(Dog)animalD;
		dog.skill(); //輸出 Dog can guard home
	}

3.instanceof 關(guān)鍵字使用

a instanceof A : 判斷對(duì)象a是否是類(lèi)A的實(shí)例。如果是,返回true;否則返回false。

public static void main(String [] args)
	{
		Animal animalD =new Dog();
		if(animalD instanceof Dog)
		{
			System.out.println("true");//輸出true
		}
	}

4.測(cè)試舉例

編譯通過(guò),運(yùn)行不通過(guò)

Animal animal=new Dog();
Cat cat=(Cat)animal
// 因?yàn)镃at和Dog無(wú)子父類(lèi)關(guān)系

Animal animal=new Animal();
Dog dog=(Dog)animal;
//animal必須指向Dog類(lèi)或Dog類(lèi)子類(lèi)

編譯不通過(guò)

Dog dog=new Cat();
//直接不符合多態(tài)性定義

編譯通過(guò),運(yùn)行通過(guò)

Object object=new Dog();
Animal animal=(Animal)object

5.強(qiáng)制類(lèi)型轉(zhuǎn)換成功總結(jié)

子類(lèi)賦值給直接父類(lèi)引用(多態(tài)),然后直接父類(lèi)引用再?gòu)?qiáng)制轉(zhuǎn)換成子類(lèi)子類(lèi)賦值給間接父類(lèi)引用(多態(tài)),然后間接父類(lèi)引用可以強(qiáng)制轉(zhuǎn)換成子類(lèi)或者子類(lèi)的父類(lèi)

Java中如何使用instanceof關(guān)鍵字

以上是“Java中如何使用instanceof關(guān)鍵字”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI