内部类的构造器必须连接到指向其外围类对象的引用,所以继承内部类时,必须初始化这个引用,而在导出类中,与外围类对象默认的连接必须断绝,以保持外围类与导出类的独立性。如:
class InheritInner extends WithInner.Inner{
InheritInner(WithInner with){
with.super();
}
}
这没有什么好惊讶的,因为内部类的构造器本来就是外围类的,所以导出类的构造器中是明确的将外围类的构造器作为其构造器,这样就只是得到外围类的构造器而并没有得到更多的东西。