VOOZH about

URL: https://paiza.jp/works/python3/primer/beginner-python9/7402

⇱ Python入門編9:メソッドのオーバーライド | プログラミング学習サイト【paizaラーニング】


演習課題「メソッドをオーバーライドしよう」

右のコードには、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

※paizaに会員登録すると無料で動画学習コンテンツをご利用いただけます
会員登録する

#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/