1. 程式人生 > >Homework1_3015218130_許鵬程

Homework1_3015218130_許鵬程

導致 項目 插入 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_許鵬程