ds design
DS検定トップ
> 継承とは?クラス設計の基本を整理【DS検定リテラシー】
まず結論
- 継承とは、あるクラスの性質や機能を別のクラスが引き継ぐ仕組みのこと。
- DS検定では「ポリモーフィズム」「カプセル化」との違いを判断させる問題としてよく問われる。
直感的な説明
「親の特徴を子が受け継ぐ」と考えると分かりやすいです。
たとえば、
- 動物クラス(Animal)
- 犬クラス(Dog)
があるとします。
犬は「動物の一種」なので、
- 食べる
- 寝る
といった動物の基本的な機能をそのまま使えます。
これが 継承 です。
業務システムでも、
- 社員クラス
- 営業社員クラス
- エンジニア社員クラス
のように「共通部分をまとめておく」ことで、設計を整理できます。
定義・仕組み
継承とは、
既存のクラス(親クラス・スーパークラス)の属性やメソッドを、
新しいクラス(子クラス・サブクラス)が引き継ぐ仕組み
のことです。
ポイントは次の3つです。
- 共通機能を再利用できる
- コードの重複を減らせる
- 「〜は〜の一種である」という関係を表現できる
DS検定では、用語の厳密な文法よりも、
- 「何を引き継ぐ仕組みなのか」
- 「どんな設計思想か」
を理解しているかが問われます。
どんな場面で使う?
使う場面
- 共通の機能を持つクラスをまとめたいとき
- 「AはBの一種」という関係が明確なとき
- 大規模開発で設計を整理したいとき
使うと誤解しやすい場面
- 単に似ているだけのクラスを無理に継承させる場合
- 「コードを使い回したいだけ」で継承を使う場合
設計上、「本当に“〜の一種”と言えるか?」が判断基準です。
よくある誤解・混同
① ポリモーフィズムとの混同
DS検定では
「同じ呼び出しで異なる動作をする」
という記述が出てきます。
これは継承ではなく ポリモーフィズム です。
- 継承 → 引き継ぐ仕組み
- ポリモーフィズム → 同じ呼び出しで振る舞いが変わる性質
選択肢では、
「異なる型を単一のインターフェースで扱う」
と書かれていたら、継承ではなくポリモーフィズムです。
② カプセル化との混同
- データを隠す
- 外部から直接触れさせない
これは カプセル化 です。
継承は「隠す」概念ではありません。
③ Pythonでは継承が必須?
Pythonでは、継承しなくても
「同じメソッドを持っていれば」動作します(ダックタイピング)。
つまり、
- ポリモーフィズムは継承がなくても成立する
ここを混同しないことが重要です。
DS検定では
「継承はポリモーフィズムの必須条件である」
という選択肢があれば 誤り と判断できます。
まとめ(試験直前用)
- 継承=親クラスの機能を子クラスが引き継ぐ仕組み
- 「〜は〜の一種」という関係を表す設計
- ポリモーフィズムとは別概念
- 「同じ呼び出しで動作が変わる」はポリモーフィズム
- Pythonではポリモーフィズムに継承は必須ではない
対応スキル項目(AI利活用スキルシート)
- AIの基礎理解
- オブジェクト指向や基本的な情報システムの概念を理解している
- ★ AIを活用したシステムの基本的な構造を理解している
🔗 関連記事
- アクセス制御リスト(ACL)とは?ファイル権限の基本を整理【DS検定】
- 中間層で使用される活性化関数とは?(ReLU・シグモイド・ソフトマックスの違い)【DS検定】
- アジャイル開発とは?ウォーターフォール開発との違いを整理【DS検定】
- 分析アプローチ設計とは?(分析プロジェクトを成功させる設計プロセス)【DS検定】
- 必要なデータ・分析手法・可視化を適切に選択する力とは?【DS検定】