A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蔡园园 黑马帝   /  2011-8-11 02:44  /  2076 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class TestDemo01 {
public static void main(String[] args) {
  // TODO Auto-generated method stub
            C c = new C(new A());
            c.sayHello();
}

}

class A {

class B {
  public void sayHello() {
             System.out.println("hello");
  }
}
}

class C extends A.B {

public C(A a) {
  a.super();
   }
}

其中a.super()怎么理解,以前认为super作为父类对象的一个引用,但是放在这不好理解,希望各位给解答下。。。。

1 个回复

倒序浏览
黑马网友  发表于 2011-8-11 08:10:51
沙发
因为内部类的构造器必须连接到指向其外围类对象的引用。
C只继承了内部类,默认的构造器不能只是传递一个指向外围类对象的引用。必须在构造器使用a.super()
这样就提供了必要的引用,编译器就能通过。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马