【发布时间】:2020-10-26 08:58:54
【问题描述】:
我有两节课
package a;
public class A {
protected void doSomething() {
}
protected static class C {
protected C(int c) {
}
}
}
package b;
public class B extends A {
@Override
protected void doSomething() {
C c = new C(0); //compile error
C c2 = new C(0){}; //legal
}
}
我已阅读第 6.6.2.2 章。访问受保护的 JLS 构造函数 (https://docs.oracle.com/javase/specs/jls/se11/html/jls-6.html) 但我仍然对解释感到困惑。即使B是A的孩子,调用超级构造函数new C(0);有什么问题?
谢谢你:-)
【问题讨论】:
标签: java inheritance constructor static protected