gpt4 book ai didi

ruby - 在类声明后设置类继承或在 const_set 类上设置类继承

转载 作者:数据小太阳 更新时间:2023-10-29 06:40:42 26 4
gpt4 key购买 nike

如果之前已经定义了一个类,我如何告诉它从父类继承

例如:

class Parent
..
end

class Klass
..
end

现在我希望它继承自Parent

我无法重新打开类并设置它,因为我会收到类不匹配错误

class Klass < Parent
..
end

具体来说,我试图找出如何在我通过 Object.const_set 创建的类上设置类继承

klass = Object.const_set('Klass', Class.new)

如何让 Klass 继承自 Parent 类?

最佳答案

无法更改已存在类的父类(super class)。

要指定您正在动态创建的类的父类(super class),您只需将父类(super class)作为参数传递给 Class.new

class Parent
end
klass = Class.new(Parent)
klass.superclass #=> Parent

请注意:您不是使用 const_set 创建类。您正在使用 Class.new 创建它。您只需使用 const_set 将创建的类存储在常量中。一旦 const_set 被调用,Class.new 已经发生,父类(super class)不能再改变。

关于ruby - 在类声明后设置类继承或在 const_set 类上设置类继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1337439/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com