演習課題「メソッドをオーバーライドしよう」
右のコードには、Greetingクラスに、say_helloメソッドが定義されており、
Greetingクラスを継承したHelloクラスが定義されています。
このHelloクラスで、say_helloメソッドをオーバーライドして、メソッド呼び出しの引数をターゲットとして表示してください。たとえば、引数に「python」を渡した場合、「hello python」と表示します。
プログラムを実行して、正しく出力されれば演習課題クリアです!
期待する出力値
hello python
演習課題「メソッドをオーバーライドしよう2」
右のコードには、Greetingクラスを継承したHelloクラスが定義されています。
そして、Greetingクラスをオブジェクトにして、player変数に割り当てています。
このplayer変数にHelloクラスのオブジェクトを割り当てください。
プログラムを実行して、正しく出力されれば演習課題クリアです!
期待する出力値
hello paiza
YEAH YEAH YEAH!
演習課題「間違い探し」
右のコードでは、say_helloメソッドを呼び出していますが、エラーになってしまいます。
間違いを修正して、「hello python」と表示されるようにしてください。
プログラムを実行して、正しく出力されれば演習課題クリアです!
期待する出力値
hello python
#03:メソッドのオーバーライド
ここでは、クラスを継承したときに利用できる、メソッドのオーバーライドについて学習します。オーバーライドを使うと、スーパークラスが持つメソッドを、サブクラスで再定義できます。
オーバーライドを利用すると、スーパークラスが持つメソッドを、サブクラスで書き換えて再定義することができます。class Box:
def __init__(self, item):
self.item = item
def open(self):
print("宝箱を開いた。" + self.item + "を手に入れた。")
class MagicBox(Box):
def look(self):
print("宝箱は、妖しく輝いている。")
def open(self):
print("宝箱を開いた。" + self.item + "が襲ってきた!")
box = Box("鋼鉄の剣")
box.open()
magicbox = MagicBox("モノマネモンスター")
magicbox.look()
magicbox.open()
クラス — Python 3.6.5 ドキュメント
https://docs.python.jp/3/tutorial/classes.html
Pythonで学ぶ 基礎からのプログラミング入門(25) オブジェクト指向について学ぼう(7)
https://news.mynavi.jp/article/python-25/