【发布时间】:2011-11-07 10:21:47
【问题描述】:
class Person
def name
puts "Doharey"
end
end
puts Person.class #=> this out puts Class
puts Class.methods.count #=> 82 methods
puts Person.methods.count #=> 82 methods
在上面的示例中,创建了一个Person 类,该类继承自Class,并且Person 和Class 具有相同数量的方法。
现在让我们实例化Person 类
a = Person.new
puts a.methods.count #=> 42 methods
如果a 是Person 的一个实例,那么为什么a 中的方法数量少于Person。发生什么了 ?有些方法怎么不见了?他们不是一开始就继承的吗?如果有怎么办?
【问题讨论】:
-
你的
Person类不是继承自Class,而是继承自Object。 -
“认为 ruby 中缺少方法是否值得怀疑?”你签到
Kernel#method_missing了吗? [对不起,实在忍不住。] -
Kernel#methods_missing是什么? “[抱歉,实在忍不住]” => 没听明白,什么? -
开个玩笑,真的。但是,如果您想了解
method_missing(而且您应该!),请看这里,例如:rubylearning.com/blog/2010/10/07/…
标签: ruby class methods instance