[問題] 繼承會自動叫父類的建構式
各位高手你們好,
我知道我很龜毛問這個沒什麼意義的問題,
但我還是想知道為什麼@@"
問題如下:
有2個class
calss Father{
Father(){
System.out.println("A");
}
}
class Son extends Father{
Son(){
System.out.println("B");
}
}
執行:
Son son = new Son();
書上說執行結果為:
A
B
因為子類別建構式那會自動有"super();"這行來呼叫父類別建構子。
----------------------------------------------------------------------
另一個程式如下:
class Father {
Father(char c){
System.out.println(c);
}
}
class Son extends Father{
Son(){
★
this('A');
System.out.println("B");
}
Son(char c){
super(c);
}
}
public class Extends5 {
public static void main(String[] args) {
Son son = new Son();
}
}
執行結果為:
A
B
那為什麼結果不會是在上面★這個地方因為要自動呼叫父類建構子super();
而產生編譯錯誤呢?
非常感謝回答的高手,
因為我觀念好像都學的不太清楚。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.217.160.56
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):