---
title: "ポリモーフィズムとは？（同じ呼び出しで動作が変わる仕組み）【DS検定】"
description: "ポリモーフィズム（多態性）を、同じメソッド名やインターフェースを呼び出しても、犬・猫など実際のオブジェクト型に応じて異なる処理が実行される仕組みとして整理します。既存クラスを引き継ぐ継承、内部状態を隠すカプセル化、部品を組み合わせるコンポジションとの違いを、コード変更への強さと責務から判断します。"
canonical_url: "https://stemtazoo.github.io/ds/polymorphism/"
section: "ds"
---

<div style="font-size: 14px; margin-bottom: 12px;">
  <a href="/ds/">DS検定トップ</a>
  ＞ ポリモーフィズムとは？（同じ呼び出しで動作が変わる仕組み）【DS検定】
</div>

## まず結論

ポリモーフィズム（多態性）とは、**同じインターフェース（同じ呼び出し方）で、異なるオブジェクトが異なる振る舞いをする仕組み**です。

DS検定では、「オブジェクト指向の基本概念の違いを判断できるか」が問われます。  
特に **継承との違いを正しく切り分けられるか** がポイントです。


## 直感的な説明

「同じボタンを押しているのに、機械によって動きが違う」  
そんなイメージです。

たとえば `print()` という処理があったとします。

- レポートなら → 文章を印刷する  
- グラフなら → 図を描画する  
- データなら → 数値を表示する  

**呼び方は同じ。でも中身の動きは違う。**

これがポリモーフィズムです。

なぜ重要かというと、  
「種類が増えても、同じ扱い方ができる」ため、  
システムをシンプルに保てるからです。


## 定義・仕組み

ポリモーフィズムとは、

> 共通のメソッド名やインターフェースを持ちながら、  
> 実際の処理内容はオブジェクトごとに異なること

を指します。

多くの場合は、

- 共通の親クラスを作る
- 子クラスで処理を上書きする（オーバーライド）

という形で実現されます。

ただし重要なのは「継承そのもの」ではなく、

**同じ呼び出しで違う動作をするという性質そのもの**です。

DS検定ではここを区別させてきます。


## どんな場面で使う？

### 使う場面

- データ形式が複数ある処理（CSV・JSON・画像など）
- モデルごとに予測方法が違うAIシステム
- グラフ描画の種類が複数ある可視化機能

実務では、  
「種類は違うが、同じように扱いたい」  
という場面で活躍します。

### 使うと誤解しやすい場面

単に「似た処理をまとめただけ」ではポリモーフィズムとは言いません。

**同じ呼び出し方法で扱えること**が条件です。


## よくある誤解・混同

### ① 継承（インヘリタンス）との混同

DS検定では  
「継承」と「ポリモーフィズム」を混同させてきます。

- 継承 → 親の性質を引き継ぐ“仕組み”
- ポリモーフィズム → 同じ呼び出しで動作が変わる“性質”

選択肢で  
「親クラスの機能を引き継ぐ仕組み」と書いてあれば、それは継承です。


### ② エンカプセレーションとの混同

- エンカプセレーション → データと処理をまとめ、外から直接触れないようにすること

「内部を隠す」とあればエンカプセレーションです。


### ③ コンポジションとの混同

- コンポジション → 部品を組み合わせる設計

「〜を持つ」という関係ならコンポジションです。


## まとめ（試験直前用）

- 同じ呼び出しで動作が変わる → ポリモーフィズム  
- 継承は“仕組み”、ポリモーフィズムは“性質”  
- 「型が違っても同じように扱える」がキーワード  
- DS検定では「継承」との切り分けが最重要  

迷ったら、  
**問われているのは“仕組み”か“性質”か？**  
と考えると正解に近づけます。


## 対応スキル項目（AI利活用スキルシート）
- AIの基礎理解
- ソフトウェアの基本概念の理解
- ★ AIを活用するために必要なIT・ソフトウェアの基礎知識を理解している

<hr>

<div style="margin-top: 16px;">
  🏠 <a href="/ds/">DS検定トップに戻る</a>
</div>
