【发布时间】:2011-05-31 12:55:50
【问题描述】:
我想测试一个类是否继承自另一个类,但似乎不存在这样的方法。
class A
end
class B < A
end
B.is_a? A
=> false
B.superclass == A
=> true
我想要的一个简单的实现是:
class Class
def is_subclass_of?(clazz)
return true if superclass == clazz
return false if self == Object
superclass.is_subclass_of?(clazz)
end
end
但我希望它已经存在。
【问题讨论】:
-
A.class #=> Class。这就是B.is_a? A返回 false 的原因。 -
kind_of?怎么样 -
kind_of?测试一个对象是否是一个类的instance。不是对象是否继承自一个类。 -
kind_of?是is_a?的别名
标签: ruby inheritance subclass superclass