オブジェクト指向 中級

60. 継承(inheritance)で機能を引き継ぐ

継承とは

「犬」も「猫」も「動物」の一種であり、どちらも名前を持ち、ご飯を食べるという共通点があります。こうした共通の性質を持つクラスを作るたびに、同じコードを何度も書くのは無駄ですよね。継承を使うと、共通の性質を持つ「親クラス(基底クラス)」をまず定義しておき、そこから「子クラス(派生クラス)」がその機能をまるごと引き継げるようになります。子クラスは、親クラスのメソッドや属性をそのまま使えるうえ、必要な部分だけを追加・変更することもできます。

書き方はとてもシンプルで、class 子クラス名(親クラス名):のように、親クラスを括弧の中に書くだけです。

サンプルコード

class Animal:
    def __init__(self, name):
        self.name = name

    def eat(self):
        print(f'{self.name}はご飯を食べます')

class Dog(Animal):
    pass

dog = Dog('ポチ')
dog.eat()
DogクラスはAnimalクラスを継承しているため、Dogクラス自体には何も書いていなくても、Animalが持つ__init__やeat()メソッドをそのまま使うことができます。dog.eat()と呼ぶと、親クラスで定義された処理がそのまま実行されます。

📝 練習問題

練習問題:Animalクラスを継承したCatクラスを作り、Cat('タマ')のインスタンスでeat()を呼び出してください。