public class EnclosingClass {
public class Inner {
Inner(int a ) { /* Constructor code */}
}
}
class SubClassOfInner extends EnclosingClass.Inner {    /**
     * @param enclosingClass
     * @param a
     */
    SubClassOfInner(EnclosingClass enclosingClass, int a) {
        enclosingClass.super(a);
        // TODO 自动生成构造函数存根
    }
//how to write a constructor?
}
看上面的类的EnclosingClass.super(a);
这段话是什么意思???????,一直没有看懂,迷惑很久了,请高人指点
enclosingClass.super(a);enclosingClass的super应该是指object对象啊

解决方案 »

  1.   

    super 这里是调用父类的有参构造方法
      

  2.   

    Inner是EnclosingClass的内部类,
    SubClassOfInner是Inner的子类
    在SubClassOfInner的带参构造函数中,要调用Inner带参构造函数,应用super代表
    但Inner是EnclosingClass的内部类,在引用时要用:
    EnclosingClass.super(a);
    如果不是内部类只要用:super(a);
      

  3.   

    Inner是EnclosingClass的内部类,
    SubClassOfInner是Inner的子类
    在SubClassOfInner的带参构造函数中,要调用Inner带参构造函数,应用super代表
    但Inner是EnclosingClass的内部类,在引用时要用:
    EnclosingClass.super(a);
    如果不是内部类只要用:super(a);正解了,主要原因就是Inner类是EnclosingClass类的内部类,Inner的实例是存在在某一个EnclosingClass类的实例当中的,如果单用super(a);调用的话,就没有办法找到Inner类的构造函数,就会出错,所以必须用EnclosingClass类的一个实例来指明Inner类的构造函数所在位置。
      

  4.   

    enclosingClass.super(a);enclosingClass的super应该是指object对象啊
    ----
    这里的enclosingClass代表的含义是偏移量,指向匿名内部类的地址
      

  5.   

    Inner是EnclosingClass的内部类,
    SubClassOfInner是Inner的子类
    在SubClassOfInner的带参构造函数中,要调用Inner带参构造函数,应用super代表
    但Inner是EnclosingClass的内部类,在引用时要用:
    EnclosingClass.super(a);
    如果不是内部类只要用:super(a);正解了,主要原因就是Inner类是EnclosingClass类的内部类,Inner的实例是存在在某一个EnclosingClass类的实例当中的,如果单用super(a);调用的话,就没有办法找到Inner类的构造函数,就会出错,所以必须用EnclosingClass类的一个实例来指明Inner类的构造函数所在位置。楼上回答的很正确了~
      

  6.   

    你用了extends EnclosingClass.Inner 
           继承的  EnclosingClass.Inner 这个类super 是父类 也就是EnclosingClass.Inner 
      你用 构造函数  并传了一个参数