Ruby 对象的超类和类的超类之间有什么区别?

Ruby 对象的超类和类的超类之间有什么区别?,ruby,class,superclass,Ruby,Class,Superclass,我得到的结果是: String.class # => Class String.superclass # => Object Class.class # => Class Class.superclass # => Module 字符串和类都是类的对象。为什么字符串的超类是对象,而类的超类是模块?您以一种奇怪的方式表述了这个问题。除此之外,我没什么可说的,它们是这样定义的 class A end class B

我得到的结果是:

String.class         # => Class 
String.superclass    # => Object 
Class.class          # => Class 
Class.superclass     # => Module 

字符串和类都是类的对象。为什么字符串的超类是对象,而类的超类是模块?

您以一种奇怪的方式表述了这个问题。除此之外,我没什么可说的,它们是这样定义的

class A
end

class B
end

class C < A
end

class D < B
end

p C.class # => Class
p C.superclass # => A
p D.class # => Class
p D.superclass # => B

只有类才有超类。一个对象的超类实际上没有意义,除非该对象恰好是一个类……而且只有一个类没有超类。