編寫程序時遇到了一些意想不到的結果。我有三個類,它們都可以正確編譯,但是當我把它們弄糟時,它們似乎沒有將正確的輸出寫入控制檯。根據我的主要方法,我應該得到的結果顯示:主要調用太多類?
Extender called
ClassTest called
但是,寫着:
AbsClass called
Extender called
ClassTest called
我在ClassTest類的構造函數使用super()
,但應該只調用父上課,對吧?
這裏的第一類:
public abstract class AbsClass {
public AbsClass() {
System.out.println("AbsClass called");
}
}
這裏是第二類:
public class Extender extends AbsClass {
public Extender() {
System.out.println("Extender called");
}
}
這裏的最後類的主要方法:
public class ClassTest extends Extender {
public ClassTest() {
super();
System.out.println("ClassTest called");
}
public static void main(String[] args){
ClassTest test = null;
test=new ClassTest();
}
}
_「如果構造函數沒有明確調用超類的構造函數,那麼Java編譯器會自動插入對超類的無參構造函數的調用。」#http://docs.oracle.com/javase/tutorial/java /IandI/super.html –
我收到你期待的結果....有什麼問題嗎?你知道如何編譯和運行java? –
@Suzon我知道如何編譯和運行,但我得到了我寫的後一個結果。 – liberation