目次
継承とポリモーフィズムとは?
オブジェクト指向プログラミングにおける継承とポリモーフィズムは、コードの再利用性や拡張性を向上させる強力な概念です。これらはPythonに限らず、プログラミングにおいて広く使用されています。
継承とは何ですか?
継承は、既存のクラス(親クラスまたは基底クラス)の特性を新しいクラス(子クラスまたは派生クラス)が獲得する仕組みです。これにより、親クラスの属性やメソッドを子クラスが利用できます。例えば、Vehicle
クラスがあり、その属性としてcolor
やfuel
があります。そして、Car
クラスがVehicle
クラスを継承すると、Car
クラスはcolor
やfuel
の属性を継承します。
# 継承の例
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!"
継承とポリモーフィズムを使うことで、コードを効率的に再利用し、柔軟性のあるプログラムを作成することができます。これらの概念は、大規模なプロジェクトやコードベースにおいて特に重要であり、コードの保守性や拡張性を高めるのに役立ちます。