我有以下内容:
class Parent
def A
return 'A'
end
def B
return 'B'
end
end
class Child < Parent
def A
super
return 'Child.A'
end
def B
super
return 'Child.B'
end
end
当我这样做时: p Child.A ==&GT; Child.A
然后我在上面的代码下面添加了这个。
class Child < Parent
alias method_of_child_A A
def A
method_of_child_A
end
end
当我这样做时
p Child.A
=> A
它返回'A',而不是'Child.A'。我正在寻找Child.A。 我希望语法也可以执行以下操作。
Class GrandChild < Child
alias method_of_GrandChild_A A #if Grandchild.A doesn't exist,
#it will alias Child.A instead.
#Which what alias does basically.
def A
method_of_GrandChild_A
end
end
所以当我这样做时: p GrandChild.A =&GT; Child.A
我对别名功能不太熟悉,有人可以启发我吗?谢谢!
答案 0 :(得分:1)
我相信您的代码已经按预期运行:
require 'pry'
class Parent
def A; 'A'; end
def B; 'B'; end
end
class Child < Parent
def A; 'Child.A'; end
def B; 'Child.B'; end
end
class Child < Parent
alias method_of_child_A A
def A
method_of_child_A
end
end
p Child.new.A #=> "Child.A"
我的编辑很容易使代码略短。