Homework1_3015218130_許鵬程
阿新 • • 發佈:2018-03-13
導致 項目 插入 pro brief bsp 查找 OS 調用
Homework 1
Briefly describe an error from my past projects.
很久以前的一個項目,忘了具體的代碼,以下是error大致內容:
1 class Father{ 2 String s; 3 4 public Father(String s){ 5 this.s = s; 6 } 7 } 8 9 public class Kid extends Father{ 10 int x = 200; 11 12 public Kid(String s){13 } 14 15 public static void main(String[] args){ 16 Kid s = new Kid; 17 } 18 }
然後12行報錯,導致整個項目無法繼續。
後來通過上網查找,才知道錯誤原因:
原來子類的無論是無參構造方法還是有參構造方法,都會默認調用父類的無參構造方法;而由於父類已經定義了有參構造方法,無默認無參構造方法,所以編譯器報錯。
所以解決方式是需要在父類中定義一個無參構造方法。
這個小錯誤之所以讓人印象深刻,是因為在我們學習構造方法時,一般只會掌握“如果一個類沒有定義構造方法,編譯器會默認插入一個無參數的構造方法;但是如果一個構造方法在父類中已定義,在這種情況,編譯器是不會自動插入一個默認的無參構造方法”,而回忽視上面提到的問題。這也是我第一次知道構造方法還有這樣的性質,所以印象深刻。
Homework1_3015218130_許鵬程