# 親クラス
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
raise NotImplementedError("サブクラスで実装してください。")
# 子クラス
class Dog(Animal):
def speak(self):
return "ワンワン"
# 子クラス
class Cat(Animal):
def speak(self):
return "ニャー"
# 子クラス
class Cow(Animal):
def speak(self):
return "モーモー"
# 子クラス
class Duck(Animal):
def speak(self):
return "ガーガー"
# インスタンス化と使用
dog = Dog("ポチ")
print(dog.name + ": " + dog.speak())
cat = Cat("タマ")
print(cat.name + ": " + cat.speak())
cow = Cow("モーリー")
print(cow.name + ": " + cow.speak())
duck = Duck("ドナルド")
print(duck.name + ": " + duck.speak())
このコードでは、Animal
という親クラスを定義し、Dog
、Cat
、Cow
、Duck
といった子クラスを作成しています。子クラスは親クラスの特性を継承し、speak
メソッドをオーバーライドしてそれぞれの動物の鳴き声を返します。
インスタンス化した子クラスのオブジェクトを使用すると、それぞれの動物の名前と鳴き声が表示されます。この例では、Dog
クラスのインスタンス dog
の名前が "ポチ" で、speak
メソッドが "ワンワン" を返すため、"ポチ: ワンワン" と出力されます。
継承を使用すると、共通の機能を持つクラスを効率的に作成できます。また、子クラスは親クラスのメソッドをオーバーライドすることで、独自の動作を追加できます。
以上が、Pythonで継承をデモンストレーションするコード例となります。この例を参考にして、継承の概念を理解し、自分自身でさまざまなクラス階層を作成してみてください。