Python :継承とポリモーフィズム

目次

継承とポリモーフィズムとは?

オブジェクト指向プログラミングにおける継承とポリモーフィズムは、コードの再利用性や拡張性を向上させる強力な概念です。これらはPythonに限らず、プログラミングにおいて広く使用されています。

継承とは何ですか?

継承は、既存のクラス(親クラスまたは基底クラス)の特性を新しいクラス(子クラスまたは派生クラス)が獲得する仕組みです。これにより、親クラスの属性やメソッドを子クラスが利用できます。例えば、Vehicleクラスがあり、その属性としてcolorfuelがあります。そして、CarクラスがVehicleクラスを継承すると、Carクラスはcolorfuelの属性を継承します。

# 継承の例
class Vehicle:
    def __init__(self, color, fuel):
        self.color = color
        self.fuel = fuel

class Car(Vehicle):  # Vehicleクラスを継承
    def __init__(self, color, fuel, model):
        super().__init__(color, fuel)  # 親クラスの初期化メソッドを呼び出し
        self.model = model

ポリモーフィズムとは何ですか?

ポリモーフィズムは、同じメソッド名を持つ異なるクラスにおいて、そのメソッドが異なる振る舞いをすることです。つまり、同じメソッドを呼び出しても、それが異なるクラスであれば、それぞれのクラスに応じた動作を行います。これにより、異なるオブジェクトを同じように扱うことができます。

# ポリモーフィズムの例
class Animal:
    def sound(self):
        pass

class Dog(Animal):
    def sound(self):
        return "Woof!"

class Cat(Animal):
    def sound(self):
        return "Meow!"

# 異なるオブジェクトから同じメソッドを呼び出す
dog = Dog()
cat = Cat()

print(dog.sound())  # 出力 -> "Woof!"
print(cat.sound())  # 出力 -> "Meow!"

継承とポリモーフィズムを使うことで、コードを効率的に再利用し、柔軟性のあるプログラムを作成することができます。これらの概念は、大規模なプロジェクトやコードベースにおいて特に重要であり、コードの保守性や拡張性を高めるのに役立ちます。

目次