最近一直在看Java编程思想,在第十章内部类中关于继承内部类的一块没有看明白,代码和问题如下:package innerclasses;
class WithInner {
class Inner{}
}
public class InheritInner extends WithInner.Inner{
public InheritInner(WithInner wi) {
/**
* 问题是关于接下来的语句:
* 按字面上,这里是调用wi的父类,也就是超类Object的构造方法么?!
* 但是实际上wi.super()接指向的是WithInner.Inner类,这是怎么实现的呢?
* 也就是怎么通过将继承类与外部类的实例挂上钩的呢?
* 能解释下原因么?!
*/
wi.super();
}
public static void main(String[] args) {
WithInner wi = new WithInner();
InheritInner ii = new InheritInner(wi);
}
}
如果WithInner.this().则执行WithInner.Inner,这个能理解吧?那么在继承子类中super可以看做指向父类的指针,父类中的this。姑且这么理解吧