最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

多態(tài)中,成員變量的特點(diǎn)

多態(tài)中,成員變量的特點(diǎn)

qq_HkJxGnMdGm_0 2019-07-20 18:33:07
class Super{????int i=0; ????public Super(String s) ????{ ????????i=1; ????} ????public Super() ????{ ????????i+=2; ????}}class Demo extends Super?{ ????public Demo(String s) ????{ ????????i+=5; ????} ????public static void main(String[] args)? ????{ ????????int i=4; ????????Super d=new Demo("YES"); ????????System.out.println(d.i); ????}}打印的結(jié)果是7,就是i等于7。但是,我記得一個多態(tài)的引用,父類引用指向子類對象用來調(diào)用成員變量,那么調(diào)用的應(yīng)該是父類下的 i 呀,為什么這里輸出結(jié)果是7呢?那么這里調(diào)用的是父類的 i 嗎?父類的 i 變?yōu)榱??
查看完整描述

1 回答

?
慕粉1469888185

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超0個贊

子類中的int i = 4;

因?yàn)闆]有傳入?yún)?shù)列表所以沒有意義

然后子類中的構(gòu)造函數(shù),并沒有super 所以默認(rèn)super調(diào)用為空的構(gòu)造函數(shù)

所以i=0+2+5 = 7

查看完整回答
反對 回復(fù) 2019-07-23
  • qq_HkJxGnMdGm_0
    qq_HkJxGnMdGm_0
    因?yàn)樽宇惱^承父類,這道題中應(yīng)該有三個i變量,父類的i、子類的i、子類局部的i,局部的i就不管它了。 主函數(shù)中,創(chuàng)建了多態(tài)的引用d,d的實(shí)質(zhì)是子類對象,那么在初始化過程中,應(yīng)該是子類的i在發(fā)生變化呀,i=0+2+5=7,是不假,但是多態(tài)的引用調(diào)用成員變量,不應(yīng)該是調(diào)用父類的嗎?這里只是堆內(nèi)存中子類對象的i在初始化呀。 我覺得調(diào)用的結(jié)果應(yīng)該是5呀,因?yàn)楦割悩?gòu)造函數(shù)初始化。但結(jié)果是7 始終想不明白。
  • 慕粉1469888185
    慕粉1469888185
    父類運(yùn)行在子類前,所以先算父類,然后才是子類,這是繼承的順序問題
  • qq_HkJxGnMdGm_0
    qq_HkJxGnMdGm_0
    是的呀,但關(guān)鍵是多態(tài)的情況下,利用父類引用去調(diào)用成員變量,此時調(diào)用的是父類下的成員變量呀,如果父類沒有這個成員變量就報錯啦。按照這個道理,那么上面的題目中父類的成員變量,變?yōu)榱?.這是為什么???
  • 1 回答
  • 0 關(guān)注
  • 491 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號