カテゴリ: 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
Flask
Flask-RESTfulの基本!API開発をシンプルにする拡張機能の導入方法
New2
Flask
FlaskでPOSTリクエストを受け取る方法!初心者でもわかるJSONデータの受け取り方
New3
Flask
FlaskのAPI開発でテストを始めよう!初心者でもわかるpytestを使った基本テスト例
New4
Flask
Flaskのエラーページをカスタマイズする方法!404・500ページの作り方まとめ
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.2
Java&Spring記事人気No2
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.3
Java&Spring記事人気No3
Flask
Flaskアプリの環境変数をクラウドで安全に設定する方法!初心者のための完全ガイド
No.4
Java&Spring記事人気No4
Python
Pythonのコメント活用術!初心者向けにTODO・FIXME・ドキュメンテーションコメントの書き方を完全解説
No.5
Java&Spring記事人気No5
Python
Pythonのbytes型とbytearray型とは?初心者向けにバイナリデータの扱い方を解説!
No.6
Java&Spring記事人気No6
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
No.7
Java&Spring記事人気No7
Python
Pythonで空白や不要な文字を削除する方法!strip(), rstrip(), lstrip() の使い方を初心者向けに解説
No.8
Java&Spring記事人気No8
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説