Kodrill

Java SE 17 Silver (1Z0-825-JPN) 試験 / 継承とインタフェースの使用 ・ 無料問題 2/5

継承とインタフェースの使用 問題2[スーパークラスとサブクラスの作成と使用]

次のコードをコンパイル・実行した結果として正しいものを選んでください。

Main.java
class Base {    Base(int n) {    }}​class Sub extends Base {    void hello() {        System.out.println("hello");    }}​public class Main {    public static void main(String[] args) {        new Sub().hello();    }}

選択肢

  • A.hello と出力される
  • B.14行目でコンパイルエラーになる
  • C.6行目でコンパイルエラーになる正解
  • D.2行目でコンパイルエラーになる

解説実行して確認済み

Sub にはコンストラクタがないので、コンパイラが Sub() { super(); } というデフォルトコンストラクタを追加します。ところが Base には引数なしのコンストラクタがなく、super() を呼べないため、Sub の宣言 (6行目) でコンパイルエラーになります。Sub に Sub() { super(0); } のようなコンストラクタを定義すれば解決します。

この問題の答えは、試験の対象バージョンでコードを実際に実行して確かめています。確かめ方は運営者情報に書いています。

「継承とインタフェースの使用」の要点を解説記事で読む

「継承とインタフェースの使用」の無料問題

ここで公開しているのは無料範囲の問題です。無料登録すると、解答の記録・ダッシュボードでの復習ができ、 プレミアムならこの問題セットの全問題と本番形式の模擬試験も解けます。