我正在寻找一种在其他功能上调用Precursor
的方法。上下文是,我重新定义了一个例程,该例程调用另一个继承人的功能,该功能调用了我的继承人,并且我想显式地调用它。有没有办法像在Java Precursor.feature_a
中那样做。
如果不是,我发现的唯一替代方法是编写一个feature_a_implementation
并从重新定义的功能中调用它。是否有特定原因不采用这种机制?这样做的后果是将feature_a
的合同定义为feature_a
和feature_a_implementation
答案 0 :(得分:2)
功能复制可用于此目的
class A feature
f do print ("A") end
end
class B inherit
A redefine f select f end
A rename f as g end
feature
f do print ("B") end
h do g end
end
类f
的功能A
在类B
中出现两次:在名称f
下(重新定义和选择的版本)和在名称g
下(原始版本)。功能h
调用g
并按预期打印A
。