本文介紹了嘗試在超類中創(chuàng)建繼承類的新對象時出現(xiàn)StackOverflow錯誤的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我是爪哇新手。有人能給我解釋一下為什么它顯示StackOverflow Error嗎?
public class MainClass {
static Start st = new Start();
public static void main(String[] args) {
st.start();
}
}
public class Start {
Generator objGenerator = new Generator();
void start() {
objGenerator.generator();
}
}
public class Generator extends Start {
void generator() {
//...
}
}
如果Generator類不是從類Start繼承的,則一切正常,但為什么?
推薦答案
Generator
繼承自Start
class Generator extends Start
和Start
在構(gòu)造上創(chuàng)建Generator
:
Generator objGenerator = new Generator();
,下同:
public class Start {
Generator objGenerator;
public Start() {
objGenerator = new Generator();
}
}
Start
具有運行objGenerator = new Generator()
的構(gòu)造函數(shù)。
這將調(diào)用Generator
的構(gòu)造函數(shù)。
Generator
的構(gòu)造函數(shù)做的第一件事是調(diào)用super()
。
super()
是Start
的默認構(gòu)造函數(shù)。
轉(zhuǎn)到%1。
這篇關(guān)于嘗試在超類中創(chuàng)建繼承類的新對象時出現(xiàn)StackOverflow錯誤的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,