問題

オブジェクト指向プログラミングの基本概念に関する記述として、適切なものはどれか。

ア)カプセル化とは、複数のクラスから共通のスーパークラスの機能を引き継ぐことを指す。

イ)継承とは、あるクラスが持つ属性やメソッドを、別のクラス(サブクラス)が引き継いで再利用できるようにする仕組みである。

ウ)多相性(ポリモーフィズム)とは、オブジェクトの内部状態を外部から直接参照できないよう隠蔽することを指す。

エ)カプセル化とは、同一のメソッド名でも、呼び出すオブジェクトの型に応じて異なる処理が実行される仕組みを指す。

解答・解説を見る

正解: イ)

解説:

  • ア)「共通のスーパークラスの機能を引き継ぐ」ことは継承(インヘリタンス)の説明であり、カプセル化の説明として誤りです。
  • イ)継承は、あるクラス(スーパークラス・親クラス)が持つ属性(データ)やメソッド(処理)を、別のクラス(サブクラス・子クラス)が引き継いで再利用したり、必要に応じて拡張・上書き(オーバーライド)したりできるようにする仕組みです。正解です。
  • ウ)オブジェクトの内部状態を外部から直接参照・変更できないように隠蔽し、決められたインタフェース(メソッド)を通じてのみアクセスさせる仕組みは「カプセル化」の説明であり、多相性の説明として誤りです。
  • エ)同一のメソッド名でも呼び出すオブジェクトの型に応じて異なる処理が実行される仕組みは「多相性(ポリモーフィズム)」の説明であり、カプセル化の説明として誤りです。

重要キーワード

用語説明
カプセル化内部状態を隠蔽し外部からの直接アクセスを制限する仕組み
継承クラスの属性・メソッドを別のクラスが引き継ぐ仕組み
多相性(ポリモーフィズム)同名メソッドが型に応じて異なる処理を行う仕組み
オーバーライドサブクラスでスーパークラスのメソッドを再定義すること