亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

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

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

問題描述

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

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指向同一個對象訪問同一個變量結(jié)果卻不同,所以我上邊的猜測應(yīng)該是錯的。那究竟是什么原因?qū)е露鄳B(tài)調(diào)用同名成員變量,訪問的是父類的成員變量這種情況?

問題解答

回答1:

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

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

回答2:

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

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

聲明的是父類F,實際上指向他的子類Z,這個時候是相當(dāng)于一個向上類型轉(zhuǎn)換,因為Z也是由F繼承過來的,所以可以向上轉(zhuǎn)型,現(xiàn)在Z是F類型的。

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

標(biāo)簽: java
主站蜘蛛池模板: 亚洲日本色图 | 黄色免费片 | 五月国产综合视频在线观看 | 免费黄色福利视频 | 免费黄网站 | 欧美 日韩 国产 成人 在线观看 | 美国一级大黄一片免费的网站 | 色综合久久中文色婷婷 | 成人久久精品一区二区三区 | 日韩精品国产精品 | 日韩一本 | 黄色香蕉网站 | 亚洲加勒比久久88色综合一区 | 精品老司机在线视频香蕉 | 国产一级 黄 片 | 狼人综合伊人网 | 日韩手机在线免费视频 | 国产主播在线播放 | 亚洲精品国产专区91在线 | 高清视频一区 | 成年男女免费视频观看性 | 可以免费看的毛片 | 亚洲欧洲另类 | 国产成人三级经典中文 | 高清在线一区二区三区亚洲综合 | 麻豆网站在线看 | 国产精品久久视频 | 国产不卡免费视频 | 一区二区三区四区在线观看视频 | 国产精品久久久久免费视频 | 萌白酱粉嫩福利视频在线观看 | 国产伦一区二区三区四区久久 | 人交性视频大全 | 国产精品自产拍2021在线观看 | 国产福利视频一区二区微拍 | 午夜久久久久久久 | 国产人成免费视频 | 色婷婷狠狠五月综合天色拍 | 国产毛片片精品天天看视频 | 精品一区二区三区五区六区 | 欧美成人h精品网站 |