オブジェクト指向(継承・委譲・多相性)とは?おぶじぇくとしこう
オブジェクト指向(継承・委譲・多相性)とは、データ(属性)と、それを扱う処理(メソッド)を1つのオブジェクトにまとめて組み立てる考え方。既存クラスの定義を引き継ぐのが継承、処理を自分で持たずに別のオブジェクトへ任せるのが委譲、同じ呼出しでも受け手の型によって実際に動く処理が変わるのが多相性(ポリモーフィズム)である。
最終更新:2026-10-06
この語が出る過去問を解く →背景
手続き中心の作り方では、データが広い範囲から参照でき、どこが書き換えているのかを追い切れなくなる。データと操作を束ねて外から直接触らせない(カプセル化)ことで影響範囲を内側に閉じ、部品として差し替えや再利用ができるようにしたのがこの発想である。多相性は、呼び出す側のコードを変えずに種類を増やせるようにするための仕組みで、機能追加に対して既存コードを触らずに済ませる設計につながる。
具体例
一覧を扱う型をインタフェースとして定め、配列で持つ実装と連結リストで持つ実装を用意すると、呼び出す側はインタフェースとして扱うだけでよく、後から実装を差し替えても影響が出ない。委譲は、あるクラスが内部にそうしたオブジェクトを持ち、要求された処理をそちらへ回す形で、継承より結び付きを緩くできる。
試験での引っ掛け
継承はクラス階層に沿って性質を引き継ぐもの、委譲は別のオブジェクトへ処理そのものを任せるもので、委譲のほうが結合を緩くできる設計手段として問われる。またオーバーロードは引数の型や個数で呼び先が決まる仕組み、オーバーライドは継承先で処理を上書きして実行時に選ばれる仕組みで、多相性を支えるのは後者である。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:平成30年度 秋期 応用情報技術者試験 午前 問62(IPA)解説で登場
出典:平成28年度 秋期 応用情報技術者試験 午前 問47(IPA)
オブジェクト指向言語のクラスに関する記述のうち、適切なものはどれか。
正解:オブジェクトに共通する性質を定義したものがクラスであり、クラスを集めたものがクラスライブラリである。
要点:クラスは共通の性質の定義、その集合がクラスライブラリ
クラスは、同じ性質と振る舞いをもつオブジェクトに共通する定義であり、そこから生成された実体がインスタンスです。汎用的なクラスをまとめて再利用できるようにしたものがクラスライブラリで、開発の効率化に役立ちます。インスタンス変数は各インスタンスが個別に持つデータで、共有されるのはクラス変数である点に注意が必要です。
出典:平成29年度 春期 応用情報技術者試験 午前 問17(IPA)
サーバアプリケーションの開発のための,オブジェクト指向技術に基づいたコンポーネントソフトウェアの仕様はどれか。
正解:EJB(Enterprise JavaBeans)
要点:EJBはサーバ側業務ロジックのコンポーネント仕様
EJBは、Java EEにおいてサーバ側の業務ロジックをコンポーネントとして実装するための仕様である。オブジェクト指向技術に基づき、トランザクションやセキュリティなどをコンテナが提供するため、開発者は業務ロジックに集中できる。
出典:平成30年度 春期 応用情報技術者試験 午前 問7(IPA)
オブジェクト指向プログラミングにおいて、同一クラス内に、メソッド名が同一であって、引数の型、個数又は並び順が異なる複数のメソッドを定義することを何と呼ぶか。
正解:オーバーロード
要点:同名・引数違いの多重定義がオーバーロード
同じ名前のメソッドを、引数の型・個数・並び順を変えて同一クラス内に複数定義することをオーバーロード(多重定義)という。呼び出し時には実引数の並びに合致する定義が選ばれる。名前は同じでも引数の並び(シグネチャ)が異なる点がポイントである。
出典:令和2年度 10月試験 応用情報技術者試験 午前 問7(IPA)
オブジェクト指向のプログラム言語であり、クラスや関数、条件文などのコードブロックの範囲はインデントの深さによって指定する仕様であるものはどれか。
正解:Python
要点:Pythonはインデントの深さでブロック範囲を決める
コードブロックの範囲を波括弧やend句ではなくインデント(字下げ)の深さで表すのはPythonの特徴で、オフサイドルールと呼ばれる。Pythonはオブジェクト指向にも対応した言語であり、条件文・関数・クラスの本体はいずれもインデントで示す。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。