亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索

對(duì)于Java中多態(tài)的補(bǔ)充

無(wú)忌哥哥
發(fā)布: 2018-07-23 10:39:33
原創(chuàng)
1424人瀏覽過(guò)

Java引用類型有兩個(gè)類型:一個(gè)是編譯時(shí)類型,另一個(gè)是運(yùn)行時(shí)類型。編譯時(shí)類型由聲明該變量時(shí)使用的類型,運(yùn)行時(shí)類型有實(shí)際賦給該變量的對(duì)象決定。如果編譯時(shí)類型和運(yùn)行時(shí)類型不一致,就可能出現(xiàn)所謂多態(tài)。

public class BaseClass {

	public int book = 6;
	public void base() {
		System.out.println("父類中的普通方法");
	}
	public void text() {
		System.out.println("父類中被覆蓋的方法");
	}
}
登錄后復(fù)制
public class subClass extends BaseClass{
	public String book ="java";
	public void text() {
		System.out.println("子類中覆蓋父類的方法");
	}
	public void sub() {
		System.out.println("子類中的普通方法");
	}
	public static void main(String[] args) {
		//下面編譯時(shí)類型和運(yùn)行時(shí)類型完全一樣,所以不存在多態(tài)
		BaseClass bc = new BaseClass();
		System.out.println(bc.book);
		//下面兩次調(diào)用的是BaseClass的方法
		bc.text();
		bc.base();
		subClass sc = new subClass();
		System.out.println(sc.book);
		//下面調(diào)用的是subClass類的方法
		sc.sub();
		sc.text();
		//下面編譯時(shí)類型與運(yùn)行時(shí)類型是不一樣的,就是所謂的多態(tài)
		BaseClass bs = new subClass();
		System.out.println(bs.book);
		bs.text();
		bs.base();
		//bs.sub();
		//bs是父類的類型,他訪問(wèn)的是父類的shi'li'bian'liang
	}
	
}
登錄后復(fù)制

上面程序的main()方法中創(chuàng)造了三個(gè)變量,前兩個(gè)引用變量,他們的編譯時(shí)類型和運(yùn)行時(shí)類型完全相同,因此調(diào)用他們的成員變量和 成員方法非常正常,但是第三個(gè)變量的編譯時(shí)類型和運(yùn)行時(shí)類型不一致,當(dāng)調(diào)用這個(gè)引用變量的text方法是,父類中定義了該方法,子類中將這個(gè)方法覆蓋掉,實(shí)際執(zhí)行的方法是子類中覆蓋掉父類的方法。

Java允許將一個(gè)子類對(duì)象直接賦給一個(gè)父類的引用變量,無(wú)需任何的類型轉(zhuǎn)換,或者被稱為向上轉(zhuǎn)型,向上轉(zhuǎn)型有系統(tǒng)自動(dòng)完成。

當(dāng)運(yùn)行時(shí)調(diào)用該引用變量的方法時(shí),其方法行為總是表現(xiàn)出子類的行為特征,而不是父類的行為特征,這就可能出現(xiàn):相同類型的變量‘調(diào)用同一個(gè)方法是呈現(xiàn)出不同的行為特征,而不是父類的行為特征,這就是多態(tài)。

與方法不同的是,對(duì)象的實(shí)例變量則不具備多態(tài)性。

結(jié)果:
6
父類中被覆蓋的方法
父類中的普通方法
java
子類中的普通方法
子類中覆蓋父類的方法
6
子類中覆蓋父類的方法
父類中的普通方法
登錄后復(fù)制

注意

  1. 立即學(xué)習(xí)Java免費(fèi)學(xué)習(xí)筆記(深入)”;

    標(biāo)書對(duì)比王
    標(biāo)書對(duì)比王

    標(biāo)書對(duì)比王是一款標(biāo)書查重工具,支持多份投標(biāo)文件兩兩相互比對(duì),重復(fù)內(nèi)容高亮標(biāo)記,可快速定位重復(fù)內(nèi)容原文所在位置,并可導(dǎo)出比對(duì)報(bào)告。

    標(biāo)書對(duì)比王12
    查看詳情 標(biāo)書對(duì)比王

    引用變量在編譯階段只能調(diào)用其編譯時(shí)類型所具有的方法,但運(yùn)行時(shí)則執(zhí)行它運(yùn)行時(shí)類型所具有的方法,因此,編寫Java代碼時(shí),引用變量只能調(diào)用聲明該變量時(shí)所用類中的方法。

  2. 立即學(xué)習(xí)Java免費(fèi)學(xué)習(xí)筆記(深入)”;

    立即學(xué)習(xí)Java免費(fèi)學(xué)習(xí)筆記(深入)”;

    通過(guò)引用類型變量來(lái)訪問(wèn)其包含的實(shí)例變量時(shí),系統(tǒng)總是試圖訪問(wèn)定義該變量的編譯時(shí)類型所定義的實(shí)例變量,而不是它運(yùn)行時(shí)所定義的實(shí)例變量。

以上就是對(duì)于Java中多態(tài)的補(bǔ)充的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!

java速學(xué)教程(入門到精通)
java速學(xué)教程(入門到精通)

java怎么學(xué)習(xí)?java怎么入門?java在哪學(xué)?java怎么學(xué)才快?不用擔(dān)心,這里為大家提供了java速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!

下載
來(lái)源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn
最新問(wèn)題
開源免費(fèi)商場(chǎng)系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)