カテゴリ: Python 更新日: 2026/01/19

Pythonの継承とは?親クラス・子クラスの関係とメソッドのオーバーライドを初心者向けに解説

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

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

生徒

「Pythonのオブジェクト指向で“継承”って出てきました。でも、親クラスとか子クラスって何のことですか?」

先生

「継承は、すでにあるクラスの機能を引き継いで、新しいクラスを作る仕組みです。」

生徒

「引き継ぐ…?プログラミング未経験でも理解できますか?」

先生

「大丈夫です。家族の例えを使いながら、親クラスと子クラスの関係を順番に見ていきましょう。」

1. Pythonの継承とは何か

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

Pythonの継承とは、あるクラスの機能や情報を、 別のクラスがそのまま引き継いで使える仕組みのことです。 オブジェクト指向プログラミングの中でも、とても重要な考え方です。

難しく聞こえるかもしれませんが、考え方はとても単純です。 すでに作った便利なクラスを、もう一度最初から作り直すのは大変です。 そこで、そのクラスを土台として、新しいクラスを作ります。

Pythonの継承を使うことで、同じコードを何度も書かずに済み、 プログラムが読みやすく、管理しやすくなります。

2. 親クラスと子クラスの関係

2. 親クラスと子クラスの関係
2. 親クラスと子クラスの関係

継承では、元になるクラスを親クラス、 親クラスを引き継いで作られるクラスを子クラスと呼びます。

家族で例えると、親クラスは親、子クラスは子どもです。 子どもは親の特徴を受け継ぎますが、 それぞれ違った個性を持つこともあります。

Pythonの子クラスも同じで、 親クラスの変数やメソッドを使いつつ、 独自の機能を追加できます。

3. 継承の基本的な書き方

3. 継承の基本的な書き方
3. 継承の基本的な書き方

Pythonで継承を行うには、 クラス名の後ろに丸かっこを書き、 その中に親クラス名を指定します。


class Animal:
    def speak(self):
        print("鳴き声を出します")

class Dog(Animal):
    pass

この例では、DogクラスがAnimalクラスを継承しています。 まだ何も書いていませんが、 DogクラスはすでにAnimalクラスの機能を持っています。

4. 継承によって使えるようになる機能

4. 継承によって使えるようになる機能
4. 継承によって使えるようになる機能

子クラスは、親クラスで定義されたメソッドを そのまま使うことができます。


dog = Dog()
dog.speak()

鳴き声を出します

Dogクラスにはspeakメソッドを書いていませんが、 親クラスのAnimalから引き継いで使えています。 これが継承の基本的な動きです。

5. 子クラス独自の機能を追加する

5. 子クラス独自の機能を追加する
5. 子クラス独自の機能を追加する

継承の便利な点は、 親クラスの機能を使いながら、 子クラス専用の機能を追加できることです。


class Dog(Animal):
    def run(self):
        print("走ります")

このように、子クラスに新しいメソッドを書くことで、 親クラスにはない動きを持たせられます。 親と子の役割分担がはっきりします。

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

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

メソッドのオーバーライドとは、 親クラスで定義されているメソッドを、 子クラス側で上書きすることです。

難しい言葉ですが、意味は単純です。 「親と同じ名前のメソッドを、子クラスで作り直す」 それだけです。

これにより、同じメソッド名でも、 子クラスでは違う動きをさせることができます。

7. オーバーライドの具体例

7. オーバーライドの具体例
7. オーバーライドの具体例

class Dog(Animal):
    def speak(self):
        print("ワンワンと鳴きます")

dog = Dog()
dog.speak()

ワンワンと鳴きます

同じspeakメソッドですが、 Animalクラスとは違う結果が表示されています。 これがメソッドのオーバーライドです。

8. 継承とオーバーライドを使うメリット

8. 継承とオーバーライドを使うメリット
8. 継承とオーバーライドを使うメリット

Pythonの継承を使うことで、 共通部分を親クラスにまとめられます。 これにより、コードの重複を減らせます。

また、オーバーライドを使えば、 必要な部分だけを子クラスで変更できます。 全体を書き直す必要はありません。

親クラスと子クラスの役割を意識することで、 プログラムの構造が自然に整理されます。 これが、Pythonのオブジェクト指向プログラミングで 継承が重視される理由です。

カテゴリの一覧へ
新着記事
New1
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
New2
Python
Pythonの継承とは?親クラス・子クラスの関係とメソッドのオーバーライドを初心者向けに解説
New3
Django
DjangoのFunction-based View(FBV)の基本を完全解説!超初心者でもわかるビュー入門
New4
Flask
Flaskの非同期処理でよくあるエラーと解決策まとめ|初心者でも安心
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonのリストを分割する方法を完全ガイド!初心者でもわかるスライス・split・itertoolsの使い方
No.2
Java&Spring記事人気No2
Python
Pythonで現在の日付・時刻を取得する方法(datetime.now() / today())
No.3
Java&Spring記事人気No3
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.4
Java&Spring記事人気No4
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.5
Java&Spring記事人気No5
Django
DjangoのURLルーティングとは?初心者向けに仕組みと役割をやさしく解説
No.6
Java&Spring記事人気No6
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
No.7
Java&Spring記事人気No7
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本
No.8
Java&Spring記事人気No8
Python
PythonのNoneとは?初心者にもわかるNoneTypeとnullの違いをやさしく解説!