2

私は混乱しています。Object でメソッドを定義すると、ObjectsスーパークラスBasicObjectで呼び出すことができます。

そのようです:

class Object
  def object_method
    "object_method called"
  end
end

Object.superclass.respond_to? :object_method
# => true

Object.superclass.object_method
# => "object_method called"

新しいメソッドを継承するのは派生クラスだけだと思っていました!

PS: ruby​​monkの演習からこの質問にたどり着きました

.. Object 内にメソッド スーパークラスを実装する ..

ここで、再帰停止基準は「影響を受ける」です。

4

2 に答える 2

3

ご覧のとおり、これは派生クラスです。

#ruby 1.8.7
Object.superclass
# => nil
nil.kind_of? Object
# => true

#ruby 2.0.0
Object.superclass
# => BasicObject 
BasicObject.kind_of? Object
# => true 
于 2013-06-04T00:48:30.737 に答える