已有101人关注
关于内部类的一个问题
发表在Java图书答疑 2009-04-02
是否精华
版块置顶:
问题见程序里面的标注:
class Outclass1 {
Outclass1() {
System.out.println("类Outclass1的无参构造函数");
}

class Innerclass1 {
Innerclass1() {
System.out.println("类Innerclass1的无参构造函数");
}
}

public Innerclass1 doIt() {
return new Innerclass1();
}
}

class Outclass2 extends Outclass1.Innerclass1 {
public Outclass2(Outclass1 obj) {
obj.super();
[font color=#FF0000]/*为什么obj.super()的输出结果会是"类Innerclass1的无参构造函数"而不是"类Outclass1的无参构造函数"?*/
[/font] System.out.println("类Outclass2的无参构造函数");
}
}

public class test {

public static void main(String[] args) {

Outclass2 obj2 = new Outclass2(new Outclass1());

   }
}
分享到:
精彩评论 3
9527
学分:0 LV1
2009-04-02
沙发
class Outclass2 extends Outclass1.Innerclass1{

}
请问一下,这个类的声明是什么意思,你是要同时继承Outclass1和Innerclass1两个类吗?

在java语言里是不允许多继承的。
zhangw0322
学分:0 LV1
2009-04-03
板凳
[FIELDSET][LEGEND]引自:1楼[/LEGEND]
class Outclass2 extends Outclass1.Innerclass1{

}
请问一下,这个类的声明是什么意思,你是要同时继承Outclass1和Innerclass1两个类吗?

在java语言里是不允许多继承的。
[/FIELDSET]

回复:
这是继承Innerclass1类,只不过Innerclass1是Outclass1的内部类,自然需要点运算符来继承的!
9527
学分:0 LV1
2009-04-09
地板
因为你继承的就是Innerclass1而不是Outclass1。
首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照