为什么私有基类构造函数导致"隐式超级构造函数不可见"

Ole*_*uts 5 java inheritance constructor private

如果构造函数不在Java中继承,为什么我会得到编译错误(隐式超级构造函数A()对于默认构造函数是不可见的.必须定义一个显式构造函数)?

class A {
    private A() {
    }
}

public class B extends A {

}
Run Code Online (Sandbox Code Playgroud)

UPD.我知道super()在隐式B构造函数中调用它.但我不明白为什么它无法访问私有构造函数super().那么,如果我们只有私有构造函数,那么事实上是final什么?

Niz*_*ziL 10

if B extends A,B必须有访问A构造函数的权限.

请记住,构造函数总是调用super().所以在这里,隐式无参数构造函数B不能调用A构造函数.