Tag: inheritance

是否有类似于inheritance的类#的钩子只在Ruby类定义之后触发?

在class Foo语句之后#inherited调用#inherited 。 我想要的东西只能在关闭类声明的end语句之后运行。 这里有一些代码来举例说明我的需求: class Class def inherited m puts “In #inherited for #{m}” end end class Foo puts “In Foo” end puts “I really wanted to have #inherited tiggered here.” ### Output: # In #inherited for Foo # In Foo # I really wanted to have #inherited tiggered here. 这样的事情存在吗? 可以创建吗? 我完全没有运气吗?

在ruby中对Fixnum进行子类化

所以我理解你不应该直接将Fixnum,Float或Integer子类化,因为它们没有#new方法。 使用DelegateClass似乎工作,但它是最好的方法吗? 有谁知道这些课没有#new背后的原因是什么? 我需要一个类似Fixnum的类,但有一些额外的方法,我希望能够在类中通过self引用它的值,例如: class Foo 10

Ruby类变量

ruby类实例让我很头疼。 鉴于此,我明白了…… class Foo @var = ‘bar’ end … @var是创建的类实例上的变量。 但是如何创建子类可覆盖的类变量? 这是我在Python中做的一个例子: class Fish: var = ‘fish’ def v(self): return self.var class Trout(Fish): var = ‘trout’ class Salmon(Fish): var = ‘salmon’ print Trout().v() print Salmon().v() 哪个输出: trout salmon 我如何在ruby中做同样的事情?