Pythonでクラスを継承する方法について詳しく説明します。
クラスの継承を利用することで、同じような処理を何度も書かずに済みます。
初心者の方でも理解しやすいよう、例コードを交えながら解説します。
時短でプログラミングを身に付けたいという方は、【完全無料】0円で学べるプログラミングスクールを紹介や【超厳選】20代におすすめのプログラミングスクール3選!を参考にしてください。
基本的なクラスの継承
クラスを定義するときに括弧内に別のクラスを指定することで継承を行います。
以下に簡単な例を示します。
class Animal:
def speak(self):
return "I don't know what I say"
class Dog(Animal):
def speak(self):
return "Woof!"
dog = Dog()
print(dog.speak()) # Woof!
多重継承
Pythonは多重継承もサポートしています。
つまり、クラスは複数の親クラスから継承することが可能です。
class Animal:
def speak(self):
return "I don't know what I say"
class Canine:
def is_canine(self):
return True
class Dog(Animal, Canine):
def speak(self):
return "Woof!"
dog = Dog()
print(dog.speak()) # Woof!
print(dog.is_canine()) # True
オーバーライドとスーパー
子クラスは、親クラスで定義されたメソッドをオーバーライド(上書き)することができます。
また、super()
関数を使うと親クラスのメソッドを明示的に呼び出すことが可能です。
class Animal:
def speak(self):
return "I don't know what I say"
class Dog(Animal):
def speak(self):
original = super().speak()
return f"Dog says: {original} But actually it's Woof!"
dog = Dog()
print(dog.speak()) # Dog says: I don't know what I say But actually it's Woof!
継承の注意点
継承は強力な機能ですが、適切に使用しないとコードが複雑化しやすいです。
そのため、次の点に注意してください。
- 可能な限り継承よりもコンポジション(他のクラスを属性として含むこと)を使用することを検討してください。
- すべての公開メソッドに対して、親クラスと同じインターフェース(メソッドの名前とパラメータ)を維持するようにしてください。これにより、親クラスを使用しているコードが子クラスでも同じように動作します(これをリスコフの置換原則といいます)。
【まとめ】継承を利用してコードを簡略化しよう!
この記事では、Pythonでクラスを継承する方法について解説しました。
今後も一緒に学んでいきましょう!
最後までお読みいただき、ありがとうございました!
Tech Academy
- 受講者数No.1のプログラミングスクール
- 通過率10%の選考に合格した優秀な講師
- カリキュラムを閲覧制限なし
- コースの種類が豊富
- オンラインで完結
- 無料体験あり
- 無料カウンセリングあり
- 学割あり
リンク
リンク
リンク