導航:首頁 > 方法技巧 > es6子類如何調用父類的方法

es6子類如何調用父類的方法

發布時間:2024-02-01 14:01:55

如何從子類中調用一個被重寫的父類的方法

比如class
child類繼承自class
parent,重載了parent的test方法,
那麼child類想調用父類的test方法時,可以寫成parent::test();
請採納,謝謝

Ⅱ 子類怎樣調用父類方法

publicclassSuperTest{
publicstaticvoidmain(String[]args){
Parentc=newParent();
c.addAll();
}
}

classParent{
publicvoidadd(){
System.out.println("Aadd...");
}

publicvoidaddAll(){
System.out.println("AaddALL...");
add();
//在父子類之間,如果在父類中使用this關鍵字,那麼運行子類時如果走到this行,指的是子類而不是父類。
//誰調用,this就是指誰
System.out.println(this.getClass());
}
}

classChildextendsParent{

@Override
publicvoidadd(){
//TODOAuto-generatedmethodstub
System.out.println("Badd...");
super.add();
}

@Override
publicvoidaddAll(){
//TODOAuto-generatedmethodstub
System.out.println("BaddALL...");
super.addAll();
}

}

最後輸出的結果是
BaddALL...
AaddALL...
Badd...
Aadd...
按我的理解,super.addAll()方法調用來Parent中的addAll(),而Parent中的addAll()調用了add()。這里的add最後調用的是Child的add(),既然是super.addAll(),為何最後竟然調用的是子類的add()方法。。。

這里涉及到的問題是當子類調用super走到父類的方法中,這時的對象this到底是指Child子類還是父類Parent?

正確答案是子類,this.add();其中的this是指當前對象,也就是Childc=newChild();中的c.

因此雖然是在父類中執行的add方法,但實際上執行的是子類的add方法

在父類的add 方法中

System.out.println(this.getClass());

結果是Child而不是Parent!

Ⅲ 如何從子類顯式得調用父類的構造方法

當父類中有多個構造函數,且沒有定義默認構造函數的話,當繼承或者創建對象的時候,系統將對變數進行初始化,但系統將不能在父類中找到默認構造函數,所以這個時候要指定一個已定義的構造函數。
「類可以沒有構造方法,但如果有多個構造方法,就應該要有默認的構造方法,
否則在繼承此類時,需要在子類中顯式調用父類的某一個非默認的構造方法了。」

class Parent{
Parent(int a,int b);
};
class Son:public class Parent{
Son();
Son(int a,int b);
};
int a,b;
Son(a,b);

閱讀全文

與es6子類如何調用父類的方法相關的資料

熱點內容
可以用哪些方法檢測血糖 瀏覽:873
盼達用車使用方法 瀏覽:133
視頻數字連接方法 瀏覽:61
如何通過成本分析表知道分配方法 瀏覽:718
小孩如何簡單做面條的方法 瀏覽:672
墊圈倒角的安裝方法 瀏覽:929
麗江冰種翡翠入門鑒別方法 瀏覽:6
做水療的步驟和方法 瀏覽:893
梅毒的中醫治療方法 瀏覽:605
怎麼盈利最好的方法 瀏覽:583
有什麼方法可以讓人死 瀏覽:980
手機下載寵物的方法 瀏覽:71
水土種植綠蘿的方法 瀏覽:962
咖啡豆的種植技術和方法 瀏覽:562
觀想的方法和技巧 瀏覽:459
和田羊脂白玉鑒別最簡單方法 瀏覽:504
戒酒最佳時間和方法 瀏覽:610
二氧化碳氣表使用方法 瀏覽:953
ORP水質檢測儀使用方法 瀏覽:674
治療白癜風最好方法 瀏覽:871