オブジェクト指向の基礎応用問題

次のコードをコンパイル・実行したとき、どうなりますか? class Base { Base() { System.out.println("Base"); } } class Child extends Base { Child() { System.out.println("Child"); } } public class Main { public static void main(String[] args) { new Child(); } }

A.Child のみ出力される
✗ Childのコンストラクタが呼ばれる前に、親クラスBaseのコンストラクタが暗黙的に呼ばれます。
B.Base のみ出力される
✗ Baseのコンストラクタが呼ばれた後、ChildのコンストラクタもBaseの後に実行されます。
C.Base Child の順で出力される← 正解
✓ 正解です。子クラスのコンストラクタは暗黙的にsuper()を呼び出すため、まずBaseが、次にChildが出力されます。
D.コンパイルエラーが発生する
✗ コードに文法的な誤りはなく、正常にコンパイル・実行されます。

Oracle Certified Java Programmer, Bronze SE の問題一覧