public class OutputInnerClass extends ClassA.ClassB{    //继承内部类b
public OutputInnerClass(ClassA a) {
a.super();
}
}
class ClassA{
class ClassB{
}
}

 

在某个类继承内部类时,必须硬性给予这个类一个带参数的构造方法,并且该构造方法的参数为需要继承内部类的外部类的引用,同时在构造方法体中使用 a.super()语句,这样才为继承提供了必要的对象引用。

 

 


super()是当前对象的直接父类的无参的构造函数。 在这个问题中super()的执行就是执行了Outer.Inner 的默认构造函数。 构造函数继承 规则: 1 子类无条件继承父类不含参数的构造函数 2 若子类无自己的构造函数,父类的无参构造函数做为子类构造函数,若有创建对象先执行父类无参构造函数,再执行自己的构造函数 3 父类中含参构造函数,子类可以在自己的构造函数中用super()来调用,必须放在第一句.


规则就是规则,呵呵