カテゴリ: 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の定数を定義する方法!慣習とモジュールを活用した書き方
New2
Python
Pythonのカプセル化とは?private変数とプロパティの活用方法をやさしく解説
New3
Python
Pythonの継承とは?親クラス・子クラスの関係とメソッドオーバーライドをやさしく解説
New4
Python
Pythonのインスタンス変数とクラス変数の違い!selfの使い方を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonのfinally文を徹底解説!例外発生時でも実行される処理の書き方と使い方
No.2
Java&Spring記事人気No2
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.3
Java&Spring記事人気No3
PHP
PHP の MySQL にデータを挿入する方法(INSERT 文の実行)を完全解説!初心者向けガイド
No.4
Java&Spring記事人気No4
PHP
PHPの配列をソートする方法!sort, rsort, asort, ksortの使い方を丁寧に解説します!
No.5
Java&Spring記事人気No5
Python
Pythonでエラーメッセージを取得する方法を完全解説!初心者でもわかるExceptionオブジェクト
No.6
Java&Spring記事人気No6
PHP
PHPの可変長引数(...$args)の使い方を完全ガイド!初心者でもわかる基本と活用方法
No.7
Java&Spring記事人気No7
PHP
PHP の MySQL 接続の基本(mysqli, PDO)を完全解説!初心者向けガイド
No.8
Java&Spring記事人気No8
Python
Pythonで経過時間を測る方法をやさしく解説!初心者向けtime.perf_counterとtime.sleepの使い方