[ Java Silver 対策 ] 演習問題10(クラスの継承

目次

クラスの継承の問題01

次のプログラムのSubClassクラスが継承しているBaseClassの説明として正しいものは?

public class SubClass extends BaseClass {
  SubClass(){
    message = "Hello";
  }
  void greet(){
    System.out.println("SubClass Message: " + message);
  }
}
  • A.)BaseClassクラスには、フィールドを初期化するコンストラクタを定義しなければならない
  • B.)BaseClassクラスには、メッセージを表示するためのメソッドを定義しなければならない
  • C.)BaseClassクラスには、greetフィールドを定義しなければならない
  • D.)BaseClassクラスには、messageフィールドを定義しなければならない
正解は、、、

D.)BaseClassクラスには、messageフィールドを定義しなければならない

SubClassクラスではmessageという変数を使用していますが、SubClassクラスでは定義されていません。そのため、BaseClassクラスでmessageフィールドが定義されていなければコンパイルエラーが発生します。

クラスの継承についてはこちらの記事でも解説しています。

継承される要素やアクセスに関する問題 2

継承の説明として正しいものは?
  • A.)アクセス修飾子がデフォルトのままのフィールドは、すべてのサブクラスのメソッドからアクセスできる
  • B.)アクセス修飾子がprivateなメソッドはサブクラスからであっても利用できない
  • C.)スーパークラスのコンストラクタは同じパッケージに属するサブクラスにのみ引き継がれる
  • D.)アクセス修飾子がprotectedなメソッドには、同じパッケージに属するサブクラスのみアクセスできる
正解は、、、

B.)アクセス修飾子がprivateなメソッドはサブクラスからであっても利用できない

サブクラスはスーパークラスの特徴を引き継ぎますが、privateなフィールドやメソッド、コンストラクタの二点は引き継げません。
アクセス修飾子がprivateなフィールドやメソッドは同じクラスのインスタンス同士でしか使えません。コンストラクタは、その定義がされているインスタンスの準備をするためのものです。

アクセス修飾子についてはこちらのページでも解説しています。

いかがだったでしょうか?クラスを継承した際に引き継がれる要素や、どの要素にアクセスできるかはクラスの継承を理解する基礎になる部分なので、しっかり覚えておきましょう。

他のページが気になる方は、下記のリンク集から、お好きなページへ飛んでください。

(Visited 189 times, 1 visits today)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

株式会社NEUGATEは、都内で企業研修や職業訓練を運営している会社です。主に、IT系の教育事業に力を入れています。
この記事は、株式会社NEUGATEの教育事業部が執筆をしています。

企業ホームページ:https://neugate.co.jp/

コメント

コメントする

目次