【发布时间】:2021-09-24 13:23:36
【问题描述】:
假设我创建了一个继承自 Symbol 的新类。 Symbols 是独一无二的,很明显 Symbol 类没有构造函数。但是哪种机制会阻止在子类中创建构造函数?是否有一些标志使所有孩子都独一无二?
class Syb < Symbol
def initialize
end
end
p Syb.respond_to? :new
false
【问题讨论】:
-
initialize不是构造函数。它是一个初始化器。new是构造函数,它不见了。这就是阻止您创建Syb实例的原因 -
好的。并且不可能在祖先的后期添加构造函数?这似乎使
sense。但是:Symbol是Object的孩子,Object响应new。这对我来说意味着Symbol删除了从Object继承的构造函数? -
其实可以。而且,我不知道它会如何影响
Symbol的现有行为。 -
@Sergio 非常感谢,现在一切都清楚了!
标签: ruby inheritance constructor