カテゴリ: Python 更新日: 2026/02/23

Pythonの継承とは?親クラス・子クラスの関係とメソッドオーバーライドをやさしく解説

Pythonの継承とは?親クラス・子クラスの関係とメソッドオーバーライド
Pythonの継承とは?親クラス・子クラスの関係とメソッドオーバーライド

先生と生徒の会話形式で理解しよう

生徒

「Pythonで同じようなクラスを何個も作ると大変なんですが、楽に書く方法はありますか?」

先生

「そのときに役立つのが、Pythonの継承という考え方です。共通部分をまとめて管理できます。」

生徒

「親クラスとか子クラスって聞いたことはありますが、正直よくわかりません…」

先生

「では、身近なたとえを使いながら、Pythonの継承とメソッドオーバーライドを順番に見ていきましょう。」

-

1. Pythonの継承とは何か?

1. Pythonの継承とは何か?
1. Pythonの継承とは何か?

Pythonの継承とは、すでにあるクラスの機能を引き継いで、新しいクラスを作る仕組みです。元になるクラスを親クラス、引き継いで作られるクラスを子クラスと呼びます。

たとえば「動物」という共通の特徴を持つものがあり、その中に「犬」や「猫」がある、というイメージです。鳴く、食べるといった共通の動作は親クラスにまとめることで、同じコードを何度も書かずにすみます。

2. 親クラスと子クラスの基本的な関係

2. 親クラスと子クラスの基本的な関係
2. 親クラスと子クラスの基本的な関係

親クラスは「共通ルールや基本機能」を持ち、子クラスはそれを受け継ぎつつ、自分専用の機能を追加できます。Pythonではクラス名の後ろに丸かっこを書いて親クラスを指定します。


class Animal:
    def speak(self):
        print("なにかの鳴き声")

class Dog(Animal):
    pass

この例では、DogクラスはAnimalクラスを継承しています。Dogクラスには何も書いていませんが、Animalクラスのspeakメソッドを使うことができます。

3. 継承すると何が便利なのか

3. 継承すると何が便利なのか
3. 継承すると何が便利なのか

継承の最大のメリットは、コードの再利用です。同じ処理を何度も書かなくてよくなり、修正も一か所で済みます。プログラムが長くなっても、管理しやすくなります。

また、共通のルールを親クラスにまとめることで、プログラム全体の構造が整理され、読みやすくなるという利点もあります。

4. 子クラスでメソッドをそのまま使う例

4. 子クラスでメソッドをそのまま使う例
4. 子クラスでメソッドをそのまま使う例

子クラスは、親クラスのメソッドをそのまま使えます。実際に呼び出してみましょう。


dog = Dog()
dog.speak()

なにかの鳴き声

Dogクラスにはspeakメソッドを書いていませんが、親クラスの処理がそのまま実行されています。

-

5. メソッドオーバーライドとは

5. メソッドオーバーライドとは
5. メソッドオーバーライドとは

メソッドオーバーライドとは、親クラスにあるメソッドを、子クラス側で上書きすることです。同じ名前のメソッドを子クラスで定義すると、子クラスの処理が優先されます。

犬なら犬らしい鳴き声にしたい、という場合に使います。


class Dog(Animal):
    def speak(self):
        print("ワンワン")

6. オーバーライドしたメソッドの動き

6. オーバーライドしたメソッドの動き
6. オーバーライドしたメソッドの動き

同じようにspeakメソッドを呼び出してみます。


dog = Dog()
dog.speak()

ワンワン

このように、親クラスの処理ではなく、子クラスで定義した内容が実行されます。これがメソッドオーバーライドです。

7. 親クラスの処理も使いたい場合

7. 親クラスの処理も使いたい場合
7. 親クラスの処理も使いたい場合

子クラスで処理を追加しつつ、親クラスの内容も使いたいことがあります。そのときはsuper()を使います。super()は「親クラスのメソッドを呼び出すための仕組み」です。


class Dog(Animal):
    def speak(self):
        super().speak()
        print("ワンワン")

これにより、親クラスの処理のあとに、子クラス独自の動作を追加できます。

8. 初心者がつまずきやすいポイント

8. 初心者がつまずきやすいポイント
8. 初心者がつまずきやすいポイント

継承でよくある間違いは、「どのクラスのメソッドが呼ばれているのかわからなくなる」ことです。クラスの関係を紙に書いたり、親と子の役割をはっきり意識すると理解しやすくなります。

また、何でも継承で解決しようとせず、「共通部分だけを親クラスにまとめる」という考え方を大切にすると、読みやすいPythonプログラムになります。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
New1
Python
Pythonのリストを反転(逆順)する方法を解説!初心者向けにreverseメソッドとスライス表記[::−1]を丁寧に説明
New2
PHP
PHP のクラスメソッドとインスタンスメソッドの違いを解説
New3
PHP
PHP の基本構文(開始タグ・コメント・インデント)を完全ガイド!初心者向け解説
New4
PHP
PHPの正規表現を使った文字列の処理(preg_match, preg_replace)
-
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.2
Java&Spring記事人気No2
PHP
PHPのforeachループを完全ガイド!初心者でもわかる配列・連想配列の処理
No.3
Java&Spring記事人気No3
PHP
PHP のインストール方法(Windows・Mac・Linux)と開発環境
No.4
Java&Spring記事人気No4
PHP
PHPのバルクインサート完全ガイド!初心者でもわかる複数データの一括処理と高速なデータベース操作
No.5
Java&Spring記事人気No5
PHP
PHPでJSONを扱う方法を完全ガイド!初心者向けにjson_encodeとjson_decodeをやさしく解説
No.6
Java&Spring記事人気No6
PHP
PHPのエラーログを完全ガイド!初心者でもわかるerror_logとログ解析の基本
No.7
Java&Spring記事人気No7
Python
Pythonで文字列を逆順にする方法![::-1]のスライスを活用
No.8
Java&Spring記事人気No8
PHP
初心者向けにPHP でファイルを開く・読み込む・書き込む方法(fopen, fwrite, fread)を解説する記事
-
-