class Outer
{
Outer()
{
System.out.println("Outer Class");
}
class Inner
{
Inner()
{
System.out.println("Inner Class");
}
}
}class Test extends Outer.Inner
{
Test(Outer outer)
{
outer.super();
}
public static void main(String[] args)
{
Outer o=new Outer();
Test t=new Test(o);
}
}在以上代码中,我有个地方不明白。第一个就是,以下代码中的outer.super()是什么意思,这么写代表了什么?
Test(Outer outer)
{
outer.super();
}请朋友们,帮我解释一下,谢谢啦!
{
Outer()
{
System.out.println("Outer Class");
}
class Inner
{
Inner()
{
System.out.println("Inner Class");
}
}
}class Test extends Outer.Inner
{
Test(Outer outer)
{
outer.super();
}
public static void main(String[] args)
{
Outer o=new Outer();
Test t=new Test(o);
}
}在以上代码中,我有个地方不明白。第一个就是,以下代码中的outer.super()是什么意思,这么写代表了什么?
Test(Outer outer)
{
outer.super();
}请朋友们,帮我解释一下,谢谢啦!
表示outer的构造函数
Test(Outer outer)
{
outer.super();
}
这里写这句。这是代表了什么?
Outer()
{
System.out.println("Outer Class");
}
Outer是外部类,Inner是内部类。为什么outer.super();是调用父类中的构造方法?
Inner in = new Outer().new Inner();
Outer o=new Outer(); //这一句是执行了。
这句话会调用以下两个构造函数
Outer()
{
System.out.println("Outer Class");
}
Inner()
{
System.out.println("Inner Class");
}
但是第二句
Test t=new Test(o); //没有执行
他的意思是调用以下的构造函数:
Test(Outer outer)
{
outer.super(); //也就是调用Outer对象的父类的构造函数
}
他的作用是调用Outer对象的父类的构造函数。
可是这里Outer类没有父类。所以也就不会调用其父类的构造方法。
这句语法无错误,但是实际没有产生程序效果。
我也不知道我的回答对不对,如果错了,请各位大侠见谅。批评小弟笑纳。
你设置断点,跟跟程序吧。
{
outer.super();
}
调用的是两个构造函数,Outer()
{
System.out.println("Outer Class");
}
Inner()
{
System.out.println("Inner Class");
}
意思是执行outer.super();时有两个输出语句