我正在學習繼承,並正在使用這個具有超類和子類的簡單程序,如下所示。我的問題不是特定於此計劃的;然而,這是我第一次看到這種情況發生的地方,所以我將它用作一個更一般的概念性問題的例子。
爲什麼簡單地實例化類運行構造函數並輸出內容?我以前的理解是實例化類只是創建對象,但它不會做任何事情。爲什麼實例化一個類輸出類的內容?
SuperClass1.java
public class SuperClass1 {
public SuperClass1(){
System.out.println("This is the superclass constructor.");
}
}
SubClass2.java
public class SubClass2 extends SuperClass1
{
public SubClass2()
{
System.out.println("This is the subclass constructor.");
}
}
Main.java
public class Main {
public static void main(String[] args)
{
SubClass2 obj1 = new SubClass2(); // why should this print something?
}
}
輸出
這是超類的構造函數。
這是子類的構造函數。
「實例化類」通常意味着*做某事*。就其本身而言,Java並不知道除了將每個字段設置爲0(或者null或false)外,其他任何操作都不知道。這在大部分時間是不夠的,所以當實例化類時,類必須實現*做某事*。在你的情況下,「實例化」恰好包含一個'println'。 – markspace
因爲這就是它的工作原理。我建議閱讀Oracle Java教程,因爲所有基本的東西都在那裏解釋。 – Kayaman