>我有以下内容:
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 儿童。 ==> 儿童
然后我在上面的代码下面添加了这个。
class Child < Parent
alias method_of_child_A A
def A
method_of_child_A
end
end
当我这样做时
p Child.A
=> A
它返回我"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 孙子 => 儿童。
我对别名功能不太熟悉,所以有人可以启发我吗?谢谢!
我相信
您的代码已经按照您的预期工作:
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"
我的编辑是装饰性的,使代码稍微短一些。