The child of a () is called.
Your assumption that calling a () from the constructor will not call the override method is correct in C ++, but not in Java. In fact, the initialization of the fields of the subclass did not occur, but still the language allows you to override the method call from the constructor.
[edit]
Obviously, you must be careful with such challenges, and they are usually considered a risky practice.
source share