多重継承とレプリケーションおよびポリモーフィズムの相互作用を理解するのに苦労しています。古典的なダイヤモンド パターンを形成する次のクラスを検討してください。
deferred class A
feature
a deferred end
end
deferred class B
inherit A
rename a as b end
end
deferred class C
inherit A
rename a as c end
end
class D
inherit
B
C
select c end
feature
b do print("b") end
c do print("c") end
end
ob_as_c
D のインスタンスをC 型のオブジェクトにアタッチすると、ob_as_c.c
期待どおり "c" が出力されます。ただし、インスタンスをob_as_b
タイプ B のオブジェクトにアタッチすると、 ob_as_b.b
"c" も出力されます。
これは意図した動作ですか?ob_as_b.b
明らかに、 「b」を印刷したいと思います。