Pythonでのクラスの継承と多重継承の実例

Pythonでは、既存のクラスを継承して新しいクラスを作成することができます。継承によって、既存のクラスの機能を再利用したり、新しい機能を追加したりできます。Pythonでは、単一継承と多重継承の両方がサポートされています。

単一継承の例

以下の例では、親クラスとして「Animal」クラスを定義し、子クラスとして「Dog」クラスを定義しています。Dogクラスは、Animalクラスを継承し、新しい「bark」メソッドを追加しています。

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

    def speak(self):
        pass

class Dog(Animal):
    def bark(self):
        return "Woof"

my_dog = Dog("Rufus")
print(my_dog.name) # Output: Rufus
print(my_dog.bark()) # Output: Woof

上記の例では、DogクラスはAnimalクラスを継承しています。このため、DogクラスはAnimalクラスのname属性を継承しています。そして、Dogクラスにbarkメソッドを追加しています。最後に、Dogクラスのインスタンスを作成し、name属性とbarkメソッドを使用しています。

多重継承の例

以下の例では、CarクラスとElectricCarクラスを定義し、ElectricCarクラスがCarクラスを継承することで、新しいchargeメソッドを追加しています。また、ElectricCarクラスは、Carクラスとは異なる親クラスであるBatteryクラスを継承し、新しいget_rangeメソッドを追加しています。

class Car:
    def __init__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year

    def start(self):
        print("Engine started")

class Battery:
    def __init__(self, battery_size=75):
        self.battery_size = battery_size

    def get_range(self):
        range = self.battery_size * 5
        print(f"This car can go {range} miles on a full charge.")

class ElectricCar(Car, Battery):
    def __init__(self, make, model, year, battery_size=75):
        Car.__init__(self, make, model, year)
        Battery.__init__(self, battery_size)

    def charge(self):
        print("Battery charged")

my_electric_car = ElectricCar("Tesla", "Model S", 2020, 100)
print(my_electric_car.make) # Output: Tesla
my_electric_car.start() # Output: Engine

上記の例では、ElectricCarクラスはCarクラスとBatteryクラスを継承しています。ElectricCarクラスはCarクラスからmakemodelyear属性を継承し、startメソッドを使用できます。また、ElectricCarクラスはBatteryクラスからbattery_size属性を継承し、新しいget_rangeメソッドを使用できます。

ElectricCarクラスは、新しいchargeメソッドを定義しています。これは、ElectricCarクラスでのみ使用できるメソッドで、バッテリーを充電するために使用されます。

ElectricCarクラスのインスタンスを作成し、make属性とstartメソッドを使用しています。そして、chargeメソッドを使用してバッテリーを充電し、get_rangeメソッドを使用して電気自動車の走行距離を取得しています。

継承によって、ElectricCarクラスは、CarクラスとBatteryクラスの機能を継承し、新しい機能を追加することができます。

まとめ

以上のように、Pythonでは継承を使用することで、既存のクラスの機能を再利用したり、新しい機能を追加したりすることができます。継承には単一継承と多重継承があり、必要な機能に応じて選択することができます。クラスの継承はPythonの基本的な文法の用法です。Pythonの基礎学習には下記のようなサイトの利用が有効です。

click.linksynergy.com

click.linksynergy.com