статический блок с наследованием

Я пересматриваю концепции java. Итак, я смотрю в этом примере

 class A {
    A( ) {System.out.print("CA");}
    static {System.out.print("SA");}
}
class B extends  A {
    B() {System.out.print("CB");}
    static {System.out.print("SB");}
    public static void main(String[] args) {
        B b = new B();
    }
}

вывод здесь: SASBCACB

Поэтому я не понял, почему печатается сообщение CA, поскольку конструктор класса A не вызывается.

Мой вопрос - это своего рода базовая java, но лучше знать об этом довольно пустые вещи.


person Ankit    schedule 26.04.2017    source источник
comment
Конструктор в B неявно вызывает super(), который является конструктором A   -  person Robin Topper    schedule 26.04.2017


Ответы (1)


A создается при создании B, так работает наследование.

person Sean Bright    schedule 26.04.2017