【问题标题】:What's the difference between object's superclass and class's superclass?对象的超类和类的超类有什么区别?
【发布时间】:2015-01-30 02:18:48
【问题描述】:

我得到了结果:

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

StringClass 都是 Class 的对象。为什么String的超类是Object,而Class的超类是Module

【问题讨论】:

  • 只有类有超类。 “对象的超类”实际上没有意义(除非该对象恰好是一个类)。
  • ...只有一个类没有超类。

标签: ruby class superclass


【解决方案1】:

你以一种奇怪的方式提出问题。除了“它们是这样定义的”,我无话可说。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-25
    • 2021-06-04
    • 2010-10-01
    • 1970-01-01
    • 2015-10-22
    • 1970-01-01
    • 2011-11-15
    • 2020-02-06
    相关资源
    最近更新 更多