Я изо всех сил пытаюсь понять взаимодействие множественного наследования с репликацией и полиморфизмом. Пожалуйста, рассмотрите следующие классы, образующие классический ромбовидный узор.
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
Если я присоединю экземпляр D к объекту ob_as_c
типа C, то ob_as_c.c
напечатает "c", как и ожидалось. Однако, если прикрепить экземпляр к объекту ob_as_b
типа B, то ob_as_b.b
напечатает также и "c".
Это намеренное поведение? Очевидно, я хотел бы, чтобы ob_as_b.b
напечатало "b".