レッスン3 / 3問目

『オーバーライド』

このレッスンではオーバーライドについて学習していきましょう。

オーバーライドとは継承したクラスのメソッドを再定義する(書き換える)ことです。
オーバーライドを行う方法は簡単です。子クラスの中で親クラスのメソッド名と同じメソッド名を定義するだけとなります。例を見ていきましょう。

  1. class Animal:
  2.     def __init__(self, name):
  3.         self.name = name
  4.     def walk(self):
  5.         print(self.name + "は散歩している。")
  6. class Dog(Animal):
  7.     def walk(self): # walkメソッドをオーバーライドしている
  8.         print(self.name + "は歩いている")
  9. dog = Dog("ポチ")
  10. dog.walk() # walkメソッドを実行
ポチは歩いている    # オーバーライドされている

上記の例ではDogクラスがAnimalクラスを継承し、8行目でwalkメソッドをオーバーライドしています。9行目でwalkメソッドの内容を書き換えていますが、出力結果を見るとちゃんとwalkメソッドの内容が書き換わっていることが確認できます。

このように子クラスで親クラスと同じメソッド名を再定義することをオーバーライドと呼びます。ではこのレッスンは以上となります。練習問題にチャレンジしましょう。

Lesson1

Animalクラスを継承したCatクラスがあります。Animalクラスのeatメソッドをオーバーライドして以下のように出力してください。

ミケはキャットフードを食べている

Last updated:2019/10/12

ミケはキャットフードを食べている
  1. class Animal:
  2. def __init__(self, name):
  3. self.name = name
  4. def eat(self):
  5. print(self.name + "は食事をしている")
  6. class Cat(Animal):
  7. # eatメソッドをオーバーライドしてください
  8. def eat(self):
  9. print(self.name + "はキャットフードを食べている")
  10. cat = Cat("ミケ")
  11. cat.eat()
main.py
設定
g
n
i
d
a
o
L