調用構造函數創建對象時應該知道的兩點

一、有父類的類在創建自己對象時,先調用父類的構造函數,有以下兩種情況:



    1、當父類沒有構造器時(即只有默認的隱式的無參構造器),先調用該隱式構造器,再調用自己的構造器;



public class test extends sup{
  public test() {
  }
  public test(int i){
    System.out.println(i);
  }
  public static void main(String args[]) {
    test t = new test(1);
  }
}
class sup{
}



    注意:要麼父類無任何顯式構造器,要麼父類必須聲明顯式的無參構造器,二者必居其一!父類有其它構造器--有參構造器,但沒有無參構造器時,會出現編譯期錯誤。



    2、當父類有顯式構造器時--指顯式聲明瞭無參構造器,先調用該無參構造器,再調用自己構造器。



public class test extends sup{
  public test() {
  }
  public test(int i){
    System.out.println(i);
  }
  public static void main(String args[]) {
    test t = new test(1);
  }
}
class sup{
 public sup(){//---------調用該構造器
   System.out.println(3);
 }
 public sup(int i){
   System.out.println(4);
 }
}


二、無父類的類在創建自己對象時,直接調用自己的構造器,無須調用自己的無參構造器。



public class test{
  public test(int i){
    System.out.println(i);
  }
  public static void main(String args[]) {
    test t = new test(1);
  }
}
發佈了41 篇原創文章 · 獲贊 0 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章