亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

求助,關于Java關鍵字super相關例題疑問?例句如下

求助,關于Java關鍵字super相關例題疑問?例句如下

倚天杖 2021-05-17 16:10:24
class A{int x,y;A(){x=100;y=200;}A(int x,int y){this.x=x;this.y=y;}}class B extends A{int z;B(int x,int y){super(x,y);z=300;}B(){z=800;}public void f(){System.out.printf("x=%d,y=%d,z=%d\n",x,y,z);}}class Example{public static void main(String arg[]){B b1=new B(10,20);b1.f();B b2=new B();b2.f();}}輸出結果是x=10,y=20,z=300x=100,y=200,z=800第二組結果沒有問題 想問下第一組結果為什么z的數值是300,我的理解是在第一次調用b1.f()的時候并沒有經過z=300的語句 而是直接調用與第二組相同的z值 不知道哪里理解有誤 請高手解答下 謝謝..
查看完整描述

2 回答

?
30秒到達戰場

TA貢獻1828條經驗 獲得超6個贊

B(int x,int y)
{
super(x,y);
z=300;
}
你這個構造方法已經對z進行初始化了啊

查看完整回答
反對 回復 2021-05-23
?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

這兩種new構建的對象實例是不同的,是采用不同的構造函數new出來的。

1、B b1=new B(10,20);這個是使用B(int x,int y)這個有參數的構造函數來構建對象實例b1,而B(int x,int y)這個構造函數又調用父類的有參數的構造函數A(int x,int y)(因為super(x,y);)并令z=300。

2、B b2=new B();這個是使用B()這個無參數的構造函數來構建對象實例b2,這個無參數構造函數初始化z=800。

查看完整回答
反對 回復 2021-05-23
  • 2 回答
  • 0 關注
  • 356 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號