![](/img/trans.png)
[英]java - reflection: How to Override private static abstract inner class method?
[英]abstract private inner class
我正在准备Oracle考试,但对以下问题的回答不正确:
组合摘要private对于内部类是合法的
答案是正确的,我回答是错误的,因为我找不到用于抽象私有内部类的用例,这些内部私有类不能从子类中覆盖。 有人可以解释一下,为什么/为什么要用这种语言吗?
Java语言规范定义私有成员的含义如下:
否则,成员或构造函数将被声明为私有,并且仅当且仅当它出现在封装成员或构造函数的声明的顶级类(第7.6节)的主体内时,才允许访问。
也就是说,可以从驻留在同一源文件中的任何代码访问(并且可以将其私有化)私有内部类。 例如,您可以执行以下操作:
public class C {
private abstract class A {
abstract void foo();
}
void bar() {
new A() {
@Override void foo() {
// do something
}
}
}
}
有趣的是,不能重写声明为private的方法,但是可以重写private类中的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.