<一覧に戻る

継承の基本概念

継承は、オブジェクト指向プログラミングの重要な概念の一つで、既存のクラス(親クラスまたは基底クラス)の特性を新しいクラス(子クラスまたは派生クラス)が引き継ぐことを指します。これにより、コードの再利用性が向上し、プログラムの構造が整理されます。

継承の利点

  • コードの再利用: 既存のクラスの機能をそのまま利用できるため、同じコードを書く必要がなくなります。
  • 拡張性: 新しい機能を持つクラスを簡単に作成できるため、プログラムの拡張が容易になります。
  • 整理されたコード: 関連するクラスを階層的に整理することで、可読性が向上します。

基本的な継承の実装

以下は、継承を利用した基本的なクラスの例です。この例では、動物(Animal)クラスを親クラスとして、犬(Dog)クラスと猫(Cat)クラスを子クラスとして定義します。

# 親クラス: 動物
class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        raise NotImplementedError("このメソッドはサブクラスで実装する必要があります。")

# 子クラス: 犬
class Dog(Animal):
    def speak(self):
        return f"{self.name}はワンワンと鳴きます。"

# 子クラス: 猫
class Cat(Animal):
    def speak(self):
        return f"{self.name}はニャーニャーと鳴きます。"

# インスタンスを作成
dog = Dog("ポチ")
cat = Cat("ミケ")

# メソッドを呼び出す
print(dog.speak())  # ポチはワンワンと鳴きます。
print(cat.speak())  # ミケはニャーニャーと鳴きます。

コードの解説

  1. Animalクラス: このクラスは親クラスで、動物の基本的な特性を持っています。speak メソッドは、サブクラスで実装する必要があることを示すため、NotImplementedError を発生させています。

  2. DogクラスとCatクラス: これらのクラスは Animal クラスを継承しています。speak メソッドをオーバーライドし、それぞれの動物に特有の鳴き声を返すように実装しています。

  3. インスタンスの作成とメソッドの呼び出し: DogCat のインスタンスを作成し、speak メソッドを呼び出すことで、それぞれの動物の鳴き声を出力しています。

まとめ

継承を使うことで、コードの再利用や拡張性を高めることができます。親クラスで定義した機能を子クラスで引き継ぎ、必要に応じて特定の機能をオーバーライドすることができます。この基本的な概念を理解することで、より複雑なオブジェクト指向プログラミングの技術を学ぶための土台を築くことができます。

一覧に戻る

出力結果: