sat*_*esh 4 java stack-overflow
这是我写的程序.我运行时遇到StackOverFlowError异常:
public class maininherit {
maininherit h = new maininherit() {
@Override
public void mai() {
System.out.print("inner");
}
};
public static void main(String[] args){
maininherit t=new maininherit();
t.mai();
}
public void mai(){
System.out.print("hellllll");
h.mai();
}
}
Run Code Online (Sandbox Code Playgroud)
这里我StackOverflowError只是在我使用maininheritclass作为内部类的引用时才得到s .如果我正在使用其他类,我没有收到该错误.任何人都可以向我澄清这个吗?
对不起,我感谢你的答案,但我有一个疑问,我不知道是否合理,只有当我在同一个类的构造函数中创建实例时才能重复初始化.那么如何才能有多个初始化?
内部类的实现只是覆盖maininherit类的一部分.所以...你初始化类maininherit然后变量h被初始化.调用了新的运算符然后再次...内部类init maininherit需要设置h变量.
您的代码是初始化h变量的不定循环.
| 归档时间: |
|
| 查看次数: |
330 次 |
| 最近记录: |