我有两个课
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);
的调用又怎么了?
谢谢:-)