Skip to the content.

最終更新日:2026年8月24日

まず結論

継承(Inheritance)とは、上位クラスが持つデータや機能を、下位クラスが引き継ぐ仕組みです。

基本情報技術者試験では、次の判断軸を押さえると選択肢を切りやすくなります。

共通部分を上位クラスにまとめる
↓
下位クラスが引き継ぐ
↓
同じ処理を何度も定義しなくてよい
↓
変更箇所を局所化しやすい

特に、「上位クラスの性質を引き継ぐ」「共通部分をまとめる」「変更箇所を減らす」という表現があれば、継承を疑います。

直感的な説明

継承は、「共通する部分を親にまとめて、子がそれを受け継ぐ」と考えると分かりやすいです。

例えば、Vehicle という上位クラスに、乗り物に共通する機能を定義します。

Vehicle
├─ move()
└─ stop()

   ↓ 継承

Car
├─ move()
├─ stop()
└─ refuel()

Truck
├─ move()
├─ stop()
└─ loadCargo()

CarTruck の両方で move()stop() を一から定義する必要はありません。

共通部分を Vehicle にまとめておけば、下位クラスはそれを引き継げます。

このとき、共通の move() の処理を変更したい場合も、上位クラス側を中心に見直せるため、同じ変更を複数のクラスへ繰り返す必要を減らせます。

継承のポイントは、「共通部分を一か所に寄せる」ことです。

定義・仕組み

オブジェクト指向では、似た性質を持つクラス同士を、上位・下位の関係で整理できます。

上位クラスと下位クラス

上位クラスは、複数のクラスに共通する性質や処理を持ちます。

下位クラスは、その共通部分を引き継ぎつつ、自分だけの機能を追加できます。

上位クラス
Animal
├─ name
└─ move()

   ↓ 継承

下位クラス
Dog
├─ name
├─ move()
└─ bark()

この関係は、次のように整理できます。

用語 意味
上位クラス 共通する性質や処理を定義するクラス
下位クラス 上位クラスの性質や処理を引き継ぐクラス
継承 上位クラスの機能を下位クラスが受け継ぐ仕組み

継承すると何がうれしい?

同じ処理を複数のクラスに重複して書くと、仕様変更のたびに複数箇所を直す必要があります。

継承を使わない
Car.move()   を修正
Truck.move() を修正
Bus.move()   を修正

共通部分を上位クラスへまとめれば、変更箇所を減らしやすくなります。

継承を使う
Vehicle.move() を中心に修正
        ↓
Car / Truck / Bus が共通機能を引き継ぐ

このように、共通機能の変更箇所を局所化しやすいことが継承の利点です。

ただし、すべての変更が必ず上位クラス1か所だけで済むわけではありません。下位クラスが独自に再定義している処理などは、個別に確認が必要です。

このテーマは、基本情報技術者試験の「アルゴリズムとプログラミング」やオブジェクト指向に関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。

科目Aでどう出る?

科目Aでは、オブジェクト指向の特徴として、継承・カプセル化・ポリモーフィズムなどを切り分ける問題に注意します。

判断キーワード

問題文の表現 疑う概念
上位クラスの性質を引き継ぐ 継承
共通部分をまとめて再利用する 継承
変更箇所を局所化しやすい 継承
内部のデータや実装を隠す カプセル化
同じ呼び出しで動作が変わる ポリモーフィズム
本質的な特徴だけを取り出す 抽象化

試験中は、次の3つを特に区別すると判断しやすくなります。

カプセル化
→ 内部を隠す

継承
→ 親の性質を引き継ぐ

ポリモーフィズム
→ 同じ呼び出しで動作が変わる

「変更箇所を局所化」の意味

継承について、次のような説明が出ることがあります。

共通処理を上位クラスにまとめる
↓
下位クラスがそれを引き継ぐ
↓
共通部分の変更を一か所に寄せやすい

ここでいう「局所化」とは、変更しなければならない場所をできるだけ限定することです。

「上位クラスを変更するためには、その上にあるすべてのクラスも変更しなければならない」という意味ではありません。

どんな場面で使う?

共通機能をまとめたいとき

複数のクラスに同じ処理がある場合、共通部分を上位クラスへまとめられます。

社員
├─ 氏名
└─ 出勤する()

正社員
└─ 賞与を計算する()

契約社員
└─ 契約期間を確認する()

氏名出勤する() のような共通部分を社員クラスにまとめれば、それぞれの下位クラスで重複して定義する必要を減らせます。

種類を追加したいとき

既存の上位クラスを基にして、新しい下位クラスを追加できます。

Vehicle
├─ Car
├─ Truck
└─ Bus  ← 新しく追加

共通機能は引き継ぎ、追加する種類に必要な機能だけを定義できます。

よくある誤解・混同

継承とカプセル化は同じ?

違います。

継承
→ 共通部分を上位クラスから引き継ぐ

カプセル化
→ データや処理をまとめ、内部を隠す

カプセル化は、オブジェクト間の不要な依存を減らしやすくする考え方です。

「カプセル化によって相互依存性を高める」という説明は、方向が逆なので注意します。

詳しくは、カプセル化とは?継承・多態性との違いで整理しています。

継承とポリモーフィズムは同じ?

違います。

継承は、上位クラスの機能を引き継ぐ仕組みです。

ポリモーフィズムは、同じメソッドを呼び出しても、対象によって異なる処理を実行できる性質です。

継承
→ 引き継ぐ

ポリモーフィズム
→ 同じ呼び出しで動作を変える

継承した下位クラスでメソッドをオーバーライドすることで、ポリモーフィズムを実現することがあります。

詳しくは、ポリモーフィズム(多相性)とは?オーバーライドとの関係を整理で確認できます。

下位クラスを変更すると、上位クラスも必ず変更する?

必ずしも変更しません。

下位クラスは、上位クラスから共通機能を引き継いだうえで、独自の機能を追加できます。

上位クラス
→ 共通部分

下位クラス
→ 共通部分を引き継ぐ
→ 独自部分だけ追加・変更

そのため、下位クラス固有の変更なら、上位クラスに影響を与えずに変更できる場合があります。

抽象化では操作をすべて事前に決める?

そのように覚えるのは適切ではありません。

抽象化は、対象の細かな違いをすべて列挙することではなく、共通する本質的な特徴に注目して整理することです。

細かい違いを全部扱う
→ 抽象化ではない

共通する重要な特徴を取り出す
→ 抽象化

まとめ(試験直前用)

  • 継承は、上位クラスの性質や処理を下位クラスが引き継ぐ仕組み
  • 共通部分を上位クラスへまとめることで、重複を減らせる
  • 共通部分の変更箇所を局所化しやすい
  • カプセル化は「内部を隠す」、継承は「引き継ぐ」
  • ポリモーフィズムは「同じ呼び出しで動作が変わる」
  • 「親の性質を引き継ぐ」「共通部分をまとめる」「変更箇所を局所化」が継承の判断ワード

© 2024-2026 stemtazoo. All rights reserved.