默认构造函数未被调用

bha*_*ran 1 java

为什么默认构造函数(同一个类)在调用默认构造函数时没有调用,但父类的默认构造函数被调用 - 为什么?

class A{
    A(){
        System.out.println("A()");
    }
}

class B extends A{
    B(){
        System.out.println("B()");
    }
}

class C extends B{
    C(){
        System.out.println("C()");
    }
    C(int i){
        System.out.println("<------>"+i);
    }
}
public class sample {
    public static void main(String[] args) {
        C c = new C(8);

    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

A()
B()
<------>8
Run Code Online (Sandbox Code Playgroud)

NPE*_*NPE 10

这就是语言的工作方式:每个类只调用一个构造函数,除非你专门从另一个构造函数中调用一个构造函数(如下所示:我如何在Java中调用另一个构造函数?).