Class
A
是 Class 的子类B
。类B
是类的子类C
。a
是类的对象A
。b
是类的对象B
。以下哪个 Ruby 表达式不正确?
b.respond_to?('class')
a.superclass == b.class
A.superclass == B
a.class.ancestors.include?(C)
这个测验问题的答案是(2)。
我理解为什么(1)、(3)和(4)是正确的,但是(2)有点令人困惑。
(2) 令人困惑,因为当我输入 时a.superclass
,irb
我得到了NoMethodError: undefined method 'superclass' for #<A:0x7fbdce1075f0>
。
但是当我输入 时A.superclass == B
,irb
我得到true
.
为什么我可以调用superclass
一个类而不是类的对象?