継承(既存クラスの再利用)
継承 を使うと、既存のクラスの機能をそのまま引き継ぎつつ、新しい機能を追加したクラスを作れます。
1. 基本の継承
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
print(f"{self.name}が鳴いています")
class Dog(Animal): # AnimalをDogが継承
def speak(self): # メソッドを上書き(オーバーライド)
print(f"{self.name}:ワンワン!")
class Cat(Animal):
def speak(self):
print(f"{self.name}:ニャーニャー!")
dog = Dog("ポチ")
cat = Cat("タマ")
dog.speak()
cat.speak()
▶ 出力結果
ポチ:ワンワン! タマ:ニャーニャー!
2. super()で親クラスを呼び出す
class Animal:
def __init__(self, name, age):
self.name = name
self.age = age
class Dog(Animal):
def __init__(self, name, age, breed):
super().__init__(name, age) # 親の__init__を呼ぶ
self.breed = breed
def info(self):
print(f"{self.name}({self.breed}){self.age}歳")
dog = Dog("ポチ", 3, "柴犬")
dog.info()
▶ 出力結果
ポチ(柴犬)3歳
