如果在Java中呼叫建構函式中的“super()”,而沒有擴充套件任何類,會發生什麼?


super關鍵字是Java中超類物件的引用。使用它,您可以呼叫超類的例項方法、建構函式和變數。

呼叫超類的建構函式

您可以從子類的建構函式中呼叫超類的建構函式。

示例

考慮以下示例,它包含兩個類:SuperClass類和SubClass類,其中SubClass擴充套件了SuperClass。超類有一個帶引數的建構函式,我們使用“super”關鍵字從子類中呼叫它。

線上演示

class SuperClass{
   SuperClass(int data){
      System.out.println("Superclass's constructor: "+data);
   }
}
public class SubClass extends SuperClass{
   SubClass(int data) {
      super(data);
   }
   public static void main(String args[]){
      SubClass sub = new SubClass(400);
   }
}

輸出

Superclass's constructor: 400

如果SuperClass具有預設建構函式,則無需顯式使用“super()”呼叫它,它將隱式呼叫。

示例

線上演示

class SuperClass{
   SuperClass(){
      System.out.println("Superclass's constructor");
   }
}
public class SubClass extends SuperClass{
   SubClass() {
      //super();
   }
   public static void main(String args[]){
      SubClass sub = new SubClass();
   }
}

輸出

Superclass's constructor

如果我們不帶任何超類呼叫“super()”

實際上,什麼也不會顯示。因為名為Object的類是Java中所有類的超類。如果您不帶任何超類呼叫“super()”,則會在內部呼叫Object類的預設建構函式(它什麼也不顯示)。

線上演示

public class Sample {
   Sample() {
      super();
   }
   public static void main(String args[]){
      Sample sub = new Sample();
   }
}

輸出

//Nothing will be displayed……

更新於:2020年6月29日

3K+ 瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.