在类delcaration之后设置类inheritance或在const_set类上设置类inheritance
如果先前已经定义了一个类,我怎么能告诉它inheritance一个Parent类
例如:
class Parent .. end class Klass .. end
现在我希望它inheritance自Parent
我无法重新打开课程并设置它,因为我会收到课程不匹配错误
class Klass < Parent .. end
具体来说,我试图找出如何在通过Object.const_set创建的类上设置类inheritance
klass = Object.const_set('Klass', Class.new)
如何告诉Klass从类Parentinheritance?
无法更改已存在的类的超类。
要指定要动态创建的类的超类,只需Class.new
类作为参数传递给Class.new
。
class Parent end klass = Class.new(Parent) klass.superclass #=> Parent
正如旁注:你不是用const_set
创建类。 您正在使用Class.new
创建它。 您只需将创建的类存储在const_set
的常量中。 调用Class.new
, Class.new
已经发生, Class.new
类不再被更改。