戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 2010年 春期 午前(科目A)47


問題文

オブジェクト指向におけるクラス間の関係のうち、適切なものはどれか。

選択肢

クラス間の関連は、二つのクラス間でだけ定義できる。
サブクラスではスーパクラスの操作を再定義することができる。(正解)
サブクラスのインスタンスが、スーパクラスで定義されている操作を実行するときは、スーパクラスのインスタンスに操作を依頼する。
二つのクラスに集約の関係があるときには、集約オブジェクトは部品オブジェクトの属性と操作を共有する。

🔒 解説は解答すると表示されます

クラス間の関係と継承の再定義【午前解説】

正解の理由

正解は です。オブジェクト指向の継承において、サブクラスはスーパクラスで定義された操作(メソッド)をそのまま使うことも、サブクラス固有の実装で上書き(オーバーライド)することもできます。これにより、同じメッセージ(操作)に対してサブクラス固有の振る舞いを実現し、ポリモーフィズム(多態性)を発揮できます。

解法ステップ

  1. 問題文で扱う用語(関連、サブクラス、スーパクラス、集約、委譲)を頭の中で定義する。
  2. 各選択肢のキーワード(「だけ」「できる」「するときは」「共有する」など)の強さをチェックする。断定表現は誤りの可能性が高い。
  3. 継承の定義(is-a、オーバーライド可)に当てはめて正しいものを選ぶ。
  4. 残りの選択肢を用語定義に照らして一つずつ排除する。

選択肢別の誤答解説

  • ア: 「クラス間の関連は、二つのクラス間でだけ定義できる。」
    誤り。UMLでは二項関連が一般的ですが、多項(n-ary)関連も存在し、複数クラスを結ぶ関連が定義可能です。したがって「だけ」は不適切です。
  • : 「サブクラスではスーパクラスの操作を再定義することができる。」
    正しい。オーバーライドによりサブクラスはスーパークラスのメソッド実装を上書き(再定義)できます。ポリモーフィズムの基礎です。
  • ウ: 「サブクラスのインスタンスが、スーパクラスで定義されている操作を実行するときは、スーパクラスのインスタンスに操作を依頼する。」
    誤り。継承ではサブクラスのインスタンス自身がスーパクラスの実装を持つ(あるいは上書きする)ため、別のスーパクラスインスタンスに依頼するわけではありません。委譲(delegation)と混同しやすい点です。
  • エ: 「二つのクラスに集約の関係があるときには、集約オブジェクトは部品オブジェクトの属性と操作を共有する。」
    誤り。集約は“部分-全体”の関係であり部品への参照を保持しますが、属性や操作を自動的に共有する概念ではありません。共有や複製、ライフサイクルの制約は設計次第です。

よくある誤解

  • 「関連は必ず二つのクラス間だけで定義される」という誤解:UMLでは多項(n-ary)関連もあり、二者間に限定されません。
  • 「サブクラスはスーパクラスのインスタンスに処理を委譲する」という誤解:継承は同一インスタンス内でスーパクラスの実装を参照・上書きする仕組みで、別インスタンスへの委譲とは異なります。
  • 「集約では部品の属性や操作をそのまま共有する」という誤解:集約は部品参照を持つ“所有”の関係であり、属性や操作が自動的に共有されるわけではありません。

補足コラム

  • オーバーライド(override)とオーバーロード(overload)は別概念です。前者は同名メソッドの再定義、後者は引数の異なる同名メソッドを複数定義することです。
  • 継承は再利用と多態性を提供しますが、濫用すると設計が硬くなるため「コンポジション(委譲)」を優先する設計指針(“Prefer composition over inheritance”)がよく推奨されます。
  • UMLでは関連(association)、集約(aggregation)、合成(composition)をアイコンで区別します。合成は集約より強いライフサイクル依存を意味します。

FAQ

Q1: オーバーライドは必ず可能ですか?
A1: 一般に可能ですが、言語やアクセス修飾子(final, sealed, private など)により禁止される場合があります。
Q2: 継承と委譲のどちらを使うべきですか?
A2: 再利用の目的や関係の意味合いで判断します。"is-a" 関係なら継承、"has-a" または振る舞いの委譲ならコンポジション(委譲)を検討してください。
Q3: 集約と合成の違いは何ですか?
A3: 両者とも部分-全体の関係ですが、合成は部品のライフサイクルが全体に依存(強い所有)する点で集約より強い結合を意味します。

関連キーワード: オブジェクト指向、クラス、継承、オーバーライド、ポリモーフィズム、委譲、集約、合成、関連、UML
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について