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()来调用,必须放在第一句.
规则就是规则,呵呵
标签:内部,构造方法,继承,子类,父类,super,构造函数 From: https://blog.51cto.com/u_2198048/6196311