始める無料で始める

ポリモーフィックなメソッド

クラスを効果的に設計するには、継承とポリモーフィズムがどのように連携するかを理解する必要があります。

この演習では、親クラス1つと子クラス2つの合計3つのクラスがあり、どれも talk() メソッドを持っています。次のコードを分析してください。

class Parent:
    def talk(self):
        print("Parent talking!")     

class Child(Parent):
    def talk(self):
        print("Child talking!")          

class TalkativeChild(Parent):
    def talk(self):
        print("TalkativeChild talking!")
        Parent.talk(self)


p, c, tc = Parent(), Child(), TalkativeChild()

for obj in (p, c, tc):
    obj.talk()

上のコードの出力はどうなりますか?

1. 2.

Parent talking!
Parent talking!
Parent talking!      

      

Parent talking!
Child talking!
Talkative Child talking!     
      
      
3. 4.

Parent talking!
Child talking!
Parent talking! 
Talkative Child talking!
Parent talking!      
      
      

Parent talking!
Child talking!
Talkative Child talking!
Parent talking!      

      

コンソールで実行しなくても、コードを読むだけで解けるはずです!

この演習はコースの一部です

Python によるオブジェクト指向プログラミング

コースを見る

実践的なインタラクティブ演習

理論を実践に変える、インタラクティブな演習のひとつをお試しください

演習を開始する