我正在學習java編程。我嘗試運行下面的程序時遇到編譯錯誤。爲什麼superconstructor被調用?爲什麼我會錯誤地打印到屏幕?
public class Animal {
public Animal() {
System.out.println(「Making an Animal」);
}
}
public class Hippo extends Animal {
public Hippo() {
System.out.println(「Making a Hippo」);
}
}
public class TestHippo {
public static void main (String[] args) {
System.out.println(「Starting...」);
Hippo h = new Hippo();
}
}
按我的理解,如果這個progragram沒有錯誤運行時,它將打印
Starting...
Making a Hippo
但在「深入淺出Java」的書中,他們提到的程序的輸出是
Starting...
Making an Animal
Making a Hippo
該輸出可能如何?我沒有調用超類構造函數,但是如何在這裏打印「製作動物」。
任何人都可以解釋這背後的邏輯?
如果我們調用子類的構造函數,它的超類constrtuctor是否也被執行?
而且爲什麼我得到編譯錯誤,我使用聯機IDE來測試基本的Java程序。
錯誤詳細信息
Compilation error comments (0) stdin copy Standard input is empty compilation info Main.java:3: error: illegal character: \8220 System.out.println(?Making an Animal?); ^Main.java:3: error: ';' expected System.out.println(?Making an Animal?); ^Main.java:3: error: illegal character: \8221 System.out.println(?Making an Animal?); ^Main.java:8: error: illegal character: \8220 System.out.println(?Making a Hippo?); ^Main.java:8: error: ';' expected System.out.println(?Making a Hippo?); ^Main.java:8: error: illegal character: \8221 System.out.println(?Making a Hippo?); ^Main.java:13: error: illegal character: \8220 System.out.println(?Starting...?); ^Main.java:13: error: ';' expected System.out.println(?Starting...?); ^Main.java:13: error: illegal start of expression System.out.println(?Starting...?); ^Main.java:13: error: illegal character: \8221 System.out.println(?Starting...?); ^Main.java:13: error: illegal start of expression System.out.println(?Starting...?); ^11 errors
嘗試使用正常報價,例如''''而不是那些花哨的斜體。 –
檢查你的引號! – Behe
忽略你在你的代碼中有無效的引號,我會說這個代碼來自於這本書的章節詳細解釋它 –