第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如下顯示,關(guān)于 Super關(guān)鍵字,繼承的問題!求詳細解答?

如下顯示,關(guān)于 Super關(guān)鍵字,繼承的問題!求詳細解答?

守著星空守著你 2021-05-17 18:10:07
class SuperClass {private int n;/*SuperClass() {System.out.println("SuperClass()");}*/SuperClass(int n) {System.out.println("SuperClass(" + n + ")");this.n = n;} }class SubClass extends SuperClass {private int n;SubClass(int n) {//super();System.out.println("SubClass(" + n + ")");this.n = n;}SubClass() {super(300);System.out.println("SubClass()");}}public class TestSuperSub {public static void main(String arg[]) {SubClass sc1 = new SubClass();//SubClass sc2 = new SubClass(400);}}在執(zhí)行main的第一句 SubClass sc1 = new SubClass();時,應(yīng)該調(diào)用的是SubClass() {super(300);System.out.println("SubClass()");}這個構(gòu)造方法,此方法內(nèi)有個super(300);應(yīng)該調(diào)用的是父類的重載的第二個方法SuperClass(int n) {System.out.println("SuperClass(" + n + ")");this.n = n;} 為什么,我注釋了 父類的第一個方法,它就不能運行了?我感覺沒有用到父類的第一個方法啊! //SubClass sc2 = new SubClass(400); 這個是main的第二句,我注釋了,沒執(zhí)行,所以跟這句沒關(guān)系!求老師或者大師解答下!謝謝……
查看完整描述

2 回答

?
小唯快跑啊

TA貢獻1863條經(jīng)驗 獲得超2個贊

問題在 SubClass(int n);

子類實例實際上是依賴父類存在的,你已經(jīng)有一個重載的構(gòu)造方法了,父類不寫SuperClass()的話,那么父類就沒有SuperClass()這個默認無參構(gòu)造了。
你在調(diào)用子類構(gòu)造方法時的時候不寫super(),虛擬機會默認調(diào)用super()的,這是還找不著父類的無參構(gòu)造方法就會報錯。

查看完整回答
反對 回復(fù) 2021-05-23
?
一只萌萌小番薯

TA貢獻1795條經(jīng)驗 獲得超7個贊

在一個類的構(gòu)造方法里,必須調(diào)用父類的構(gòu)造方法,如果沒有顯式的調(diào)用,java會自動調(diào)用“默認構(gòu)造方法”,也就是一個沒有任何參數(shù)的構(gòu)造方法,但是SuperClass沒有默認構(gòu)造方法,所以自然報錯

如果將父類所有的構(gòu)造方法去掉,java將會自動生成一個默認構(gòu)造方法,一旦自己寫了任何一個構(gòu)造方法,java就不會再生成

在上面的例子里,如果你把SuperClass的所有構(gòu)造方法去掉,在SubClass的構(gòu)造方法里直接調(diào)用super();就不會報錯

查看完整回答
反對 回復(fù) 2021-05-23
  • 2 回答
  • 0 關(guān)注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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