子類繼承父類,重寫了父類方法,那麼呼叫時就會呼叫子類重寫後的方法
public
class
testparent
public
void
say()}
public
class
testchild
extends
testparent
public
void
say(
)public
static
void
main
(string[
] args)
}
可能你會認為答案是這樣的
helloparent
hellochild
但這是錯的,在執行父類的構造方法時,呼叫的並不是父類的say方法,而是子類重寫的say方法,此時子類非靜態變數並未載入,所以輸出為null。要想指定呼叫父類方法可用super.say()來指定,若想執行父類構造器時輸出name,可將子類變數設定為static/final,那麼就會先於構造器執行。
hellonull
hellochild
Java父類呼叫被子類重寫的方法
父類 public class father public void talking 子類 public class son extends father public static void main string args 輸出 son is talking 說明 1 父類有兩個方法 talki...
重寫 呼叫父類方法
所謂重寫,就是子類中,有乙個和父類相同名字的方法,在子類中的方法會覆蓋掉父類中同名的方法 class cat object def sayhello self print halou 1 class bosi cat def sayhello self print halou 2 bosi bosi...
重寫父類方法和呼叫父類方法
class animal object def eat self print 吃 def drink self print 喝 class dog animal def bark self print 汪汪叫 print 汪汪叫 print 汪汪叫 print 汪汪叫 print 汪汪叫 class...