溫馨提示×

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

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

java 多態(tài)實(shí)例代碼

發(fā)布時(shí)間:2020-09-13 11:37:04 來源:腳本之家 閱讀:151 作者:ttxxly 欄目:編程語言

多態(tài)是同一個(gè)行為具有多個(gè)不同表現(xiàn)形式或形態(tài)的能力。多態(tài)就是同一個(gè)接口,使用不同的實(shí)例而執(zhí)行不同操作。

多態(tài)性是對(duì)象多種表現(xiàn)形式的體現(xiàn),比如:

在現(xiàn)實(shí)中,我們按下F1鍵這個(gè)動(dòng)作:

如果當(dāng)前在Flash界面下彈出的就是AS 3的幫助文檔
如果當(dāng)前在Word下彈出的就是Word幫助
在Windows下彈出的就是Windows幫助和支持

多態(tài)存在的三個(gè)必要條件

繼承
重寫
父類引用指向子類對(duì)象

Parent p = new Child();

當(dāng)使用多態(tài)方式調(diào)用方法時(shí),首先檢查父類中是否有該方法,如果沒有,則編譯錯(cuò)誤;如果有,再去調(diào)用子類的同名方法。

例題

package Wangyi;
class Base
{
	public void method()
	  {
		System.out.println("Base");
	}
}
class Son extends Base
{
	public void method()
	  {
		System.out.println("Son");
	}
	public void methodB()
	  {
		System.out.println("SonB");
	}
}
public class Test01
{
	public static void main(String[] args)
	  {
		Base base = new Son();
		base.method();
		base.methodB();
	}
}

問這個(gè)程序的輸出結(jié)果。(D)

A. Base SonB
B. Son SonB
C. Base Son SonB
D.編譯不通過
解釋:
Base base=new Son(); 是多態(tài)的表示形式。父類對(duì)象調(diào)用了子類創(chuàng)建了Son對(duì)象。
base調(diào)用的method()方法就是調(diào)用了子類重寫的method()方法。
而此時(shí)base還是屬于Base對(duì)象,base調(diào)用methodB()時(shí)Base對(duì)象里沒有這個(gè)方法,所以編譯不通過。
要想調(diào)用的話需要先通過SON son=(SON)base;強(qiáng)制轉(zhuǎn)換,然后用son.methodB()調(diào)用。

總結(jié)

以上就是本文關(guān)于java 多態(tài)實(shí)例代碼的全部內(nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

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

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

AI