導航:首頁 > 方法技巧 > 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子類如何調用父類的方法相關的資料

熱點內容
最簡單瘦手臂和背部的快速方法 瀏覽:839
啞鈴鍛煉方法啞鈴鍛煉計劃 瀏覽:889
橡皮泥做小手機方法 瀏覽:173
如何快速止盈方法 瀏覽:584
if函數的使用方法視頻教程 瀏覽:476
微博電腦版皮膚設置在哪裡設置方法 瀏覽:135
鋁線與銅絲連接方法 瀏覽:505
半月板前角損傷治療的好方法 瀏覽:740
凱美瑞雨刷的正確拆卸方法 瀏覽:140
鵝掌種植方法 瀏覽:832
鉗工水平尺的正確校準方法 瀏覽:273
渾身沒勁有什麼方法 瀏覽:550
橋頭土石方計算方法 瀏覽:58
一般定向法用什麼的方法確定方向 瀏覽:642
子宮肌腺症的治療方法 瀏覽:907
生火最簡單的方法 瀏覽:535
天才郁悶的原因和解決方法 瀏覽:117
好朋友訓練方法 瀏覽:32
教學方法與手段改革有哪些 瀏覽:281
按摩肚子瘦身方法視頻 瀏覽:420