1. 默認構造方法:

  默認構造方法是沒有參數的構造方法,可以簡單的分為兩種:

  (1) 隱含的默認構造方法

  (2) 程序顯式定義的構造方法

  在java語言中,每個類至少有一個構造方法,為了保證這一點,如果用戶定義的類中沒有構造方法,那么java語言將自動提供一個隱含的默認構造方法,該構造方法沒有參數,用public修飾,沒有返回值,并且方法體為空,例如:

  public ClassName(){}

  當然在程序中也可以明確的定義默認構造方法,

  如果在類中定義了一個或者多個構造方法,并且所有的構造方法都有參數,這個類就失去了默認的構造方法。如果想保留默認的構造方法,必須顯式的定義出來。例如:

  public class Test(){

  public Test(String name){System.out.println(name);};

  public Test(int age){System.out.println(age);}

  } 對于這個類,如果要定義一個對象Test test = new Test();這個就是錯誤的,因為沒有這個構造方法,如果想這樣定義,必須顯式的定義默認構造方法。

  2. 子類調用父類的構造函數

  父類的構造函數不能被子類繼承,但是在子類對象被創建時,如果不顯式調用父類的構造方法,這是子類會調用父類的默認構造方法。如果要調用父類的其他構造方法(帶參構造方法),必須出使用super顯式的指

  使用super必須遵循一下規則:

  (1) 在子類的構造方法中不能直接使用父類的構造方法名稱直接調用,而必須使用super語句

  (2) 如果在子類的構造方法中時用super調用父類的構造方法,他必須作為構造方法的第一條語句出現。

  總結

  在創建子類的對象時,java虛擬機首先執行父類的構造方法,然后再執行子類的構造方法,在多重繼承的情況下,將從最頂層的類的構造方法開始執行,然后依次執行各個類的構造方法。