集类继承
问题描述:
如果一个类被事先定义,我怎么能知道它从一类家长集类继承
继承例如:
class Parent
..
end
class Klass
..
end
现在我希望它从父继承
我不能重新打开类并设置它,因为我会得到一类不匹配错误
class Klass < Parent
..
end
具体我试图找出如何设置类继承的一个类IM通过Object.const_set
klass = Object.const_set('Klass', Class.new)
我怎么能告诉克拉斯从类继承父创造?
答
没有办法改变已经存在的类的超类。
要指定要动态创建的类的超类,只需将超类作为参数传递给Class.new
即可。
class Parent
end
klass = Class.new(Parent)
klass.superclass #=> Parent
正如旁注:你不是创建类const_set
。您正在使用Class.new
创建它。您只需将创建的类存储在const_set
的常量中即可。一旦调用const_set
,Class.new
已经发生,超类不能再被改变。
谢谢,这正是我所需要的。 – 2009-08-26 21:50:16