これは、私のpythonコードにあるもののモデルの例です
class BasicActivity:
def run(self):
print "basic run"
def jump(self):
print "basic jump"
class ChickenStyleActivity(BasicActivity):
def run(self):
print "run like chicken"
class BunnyStyleActivity(BasicActivity):
def jump(self):
print "jump like bunny"
class ExtraordinaryActivity(ChickenStyleActivity,BunnyStyleActivity):
pass
d = ExtraordinaryActivity()
d.run()
d.jump()
1つのクラスでチキンとバニーの両方のスタイルがあると思っていましたが、驚いたことに、チキンランで基本的なジャンプでした。メソッド解決の順序について読み始めたところ、多重継承でクラスの順序を変更すると逆の効果が生じることがわかりました。
問題は、1 つのクラスで Chicken と Bunny の両方のスタイルを使用するにはどうすればよいかということです。
より一般的には、メソッドのオーバーライドが有効になったときに、共通の基本クラスを持ついくつかのクラスを適切に継承する方法は?