Hic*_*aid 5 java subclass inner-classes
我理解扩展内部类的顶级类的概念:
package pkg1;
public class A {
public class B {
}
}
package pkg2;
import pk1.A;
public class C extends A.B {
public C() {
new A().super();
}
}
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚任何说明这一点的真实例子.也就是说,我们为什么要使用这样的实现呢?
也就是说,我们为什么要使用这样的实现呢?
你不应该。如果C必须创建自己的封闭实例,那么它在语义上就不再是“内部”。
当您传递封闭实例时,此功能更有用,其行为与内部类相同:
class C extends A.B {
C(A enclosing) {
enclosing.super(); // note: invokes a constructor
} // of the B superclass
}
Run Code Online (Sandbox Code Playgroud)
(除非我们不能使用像 那样的类实例创建表达式someA.new C()。我们必须使用new C(someA)。)
但如果你发现自己不得不使用这个,这可能意味着你已经把自己逼到了一个角落。B可能应该是一个顶级类或者static显式传入“封闭实例”。
| 归档时间: |
|
| 查看次数: |
394 次 |
| 最近记录: |