这是在看Thinking in java(第三版)时看到的
在继承一个内部类时要格外的注意
class WithInner {
class Inner {}
}
public class InheritInner extends WithInner.Inner {
//! InheritInner() {} // Won't compile
InheritInner(WithInner wi) {
wi.super();//我想这里的wi.super()并不是调用wi的super的意思,而是将wi传送给自己的super()。就好像wi.new一样
}
public static void main(String[] args) {
WithInner wi = new WithInner();
InheritInner ii = new InheritInner(wi);
}
} ///:~
注意这里对内部类的继承时需要做的特殊处理
在继承一个内部类时要格外的注意
class WithInner {
class Inner {}
}
public class InheritInner extends WithInner.Inner {
//! InheritInner() {} // Won't compile
InheritInner(WithInner wi) {
wi.super();//我想这里的wi.super()并不是调用wi的super的意思,而是将wi传送给自己的super()。就好像wi.new一样
}
public static void main(String[] args) {
WithInner wi = new WithInner();
InheritInner ii = new InheritInner(wi);
}
} ///:~
注意这里对内部类的继承时需要做的特殊处理
博客基于《Thinking in Java(第三版)》,介绍了Java中继承内部类时需特殊处理。给出代码示例,如InheritInner类继承WithInner.Inner类,构造函数中使用wi.super()将wi传送给自己的super(),提醒关注内部类继承的特殊操作。

被折叠的 条评论
为什么被折叠?



