色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java - 多態(tài)調(diào)用同名成員變量,為何訪問(wèn)的是父類的成員變量?

瀏覽:100日期:2023-11-05 08:41:57

問(wèn)題描述

剛開(kāi)始猜測(cè),由于父類和子類的成員變量在堆中各存一份,可能是父類的存在上面,因此先找到的父類的成員變量。然后測(cè)試了一下,代碼如下:

package test;public class Polymorphism { public static void main(String[] args) {F f = new Z();f.show();System.out.println('f:'+f);System.out.println('f:'+f.a); }}abstract class F{ int a = 10; public abstract void show();}class Z extends F{ int a = 5; public void show(){System.out.println('Z:'+this);System.out.println('Z:'+this.a); }}

輸出為:Z:test.Z@15db9742Z:5f:test.Z@15db9742f:10

f與this指向同一個(gè)對(duì)象訪問(wèn)同一個(gè)變量結(jié)果卻不同,所以我上邊的猜測(cè)應(yīng)該是錯(cuò)的。那究竟是什么原因?qū)е露鄳B(tài)調(diào)用同名成員變量,訪問(wèn)的是父類的成員變量這種情況?

問(wèn)題解答

回答1:

java - 多態(tài)調(diào)用同名成員變量,為何訪問(wèn)的是父類的成員變量?

f指的是子類對(duì)象。只聽(tīng)過(guò)方法的重寫和重載,沒(méi)有類變量的重寫和重載吧,我運(yùn)行的程序,它分情況了,如果是調(diào)用方法,就是實(shí)際所指的對(duì)象(這里實(shí)際對(duì)象是子類對(duì)象Z)的方法,如果是類變量同名了,就是生命對(duì)象的類變量值。

回答2:

java中方法的重寫,重載與動(dòng)態(tài)鏈接構(gòu)成多態(tài),多態(tài)就是同一個(gè)事物的不同表現(xiàn)形式。

你這個(gè)例子是方法的重寫表現(xiàn)出來(lái)的多態(tài)性。

聲明的是父類F,實(shí)際上指向他的子類Z,這個(gè)時(shí)候是相當(dāng)于一個(gè)向上類型轉(zhuǎn)換,因?yàn)閆也是由F繼承過(guò)來(lái)的,所以可以向上轉(zhuǎn)型,現(xiàn)在Z是F類型的。

所以這里f變量由Z實(shí)例化出來(lái)的,但是它是F類型的,表現(xiàn)出來(lái)的是F的特性。

標(biāo)簽: java
主站蜘蛛池模板: 国产成人精品微拍视频 | 美女张开腿给男生桶下面视频 | 欧美在线一级精品 | 狠狠做久久深爱婷婷97动漫 | 国产大片免费天天看 | 午夜精品尤物福利视频在线 | 久久久久久毛片免费播放 | 亚洲综合无码一区二区 | 午夜影院黄色片 | 久久91av| 最新国产美女一区二区三区 | 日本aa毛片a级毛片免费观看 | 精品精品国产欧美在线观看 | 日本免费人做人一区在线观看 | 很黄很色的免费视频 | 夜夜爽影院 | caoporen国产91在线| 天天综合色一区二区三区 | 爱视频福利广场 | 亚洲国产高清一区二区三区 | 欧美顶级毛片在线播放 | 三级毛片在线看 | 美女被靠视频免费网站不需要会员 | 久草手机在线视频 | 日本在线观看免费视频 | 国产日韩精品一区在线观看播放 | 三级在线国产 | 国产成人av性色在线影院 | 国产免费视屏 | 一区二区三区在线 | 午夜在线播放免费人成无 | 欧美日韩国产亚洲综合不卡 | 亚洲欧美激情视频 | 日韩在线视频中文字幕 | 国产香港特级一级毛片 | 九九看片 | 国产欧美日韩精品一区二区三区 | 亚洲第一中文字幕 | 美女视频免费看视频网站 | 手机毛片免费看 | 盗摄偷拍a在线观看 |