关于继承类、内部类执行顺序的问题,代码简单。问题仍在

巨应打字员 2008-09-29 11:45:56
class OA {
OA() {System.out.println("OA");}
class IA {
IA() {System.out.println("OA.IA");}
void f() {System.out.println("OA.IA.f()");}
}
IA ia = new IA();
void set(IA a) {ia = a;}
void g() {ia.f();}
}
class OB extends OA{
OB() {System.out.println("OB"); set(new IA());}
class IA extends OA.IA {
IA() {System.out.println("OB.IA");}
void f() {System.out.println("OB.IA.f()");}
}
}
public class NestedInner {
public static void main(String[] args) {
new OB().g();
}

}

答案为
OA.IA
OA
OB
OA.IA
OB.IA
OB.IA.f()

如果把main里面改为new OB();
答案为
OA.IA
OA
OB
OA.IA
OB.IA
为什么呀???小第也学了半年的JAVA了连这个基本问题都没搞清楚很急啊.没有分了.大家请原谅,请指点我
...全文
146 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZangXT 2008-09-29
  • 打赏
  • 举报
回复
不是实例其父类内部的类,子类中包含了从父类中继承下来的数据,调用父类的构造方法只是执行相关的初始化操作。
巨应打字员 2008-09-29
  • 打赏
  • 举报
回复
有个疑问,当实例一个类,会先实例其父类内部的类,然后调用父类构建器吗?是这样的吗??
ZangXT 2008-09-29
  • 打赏
  • 举报
回复
会调试吧?
跟踪一下看看。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧