【Ruby】クラスの継承階層を調べる

classメソッドと、superclassメソッドを使って、クラスの継承階層を調べます。

Rubyでオブジェクト自身のクラスを調べるには、classメソッド
オブジェクト自身の継承クラスを調べるには、superclassメソッドを使います。

例として、Stringクラスの継承階層を調べてみます。

・はじめに対象の変数sに文字列を設定
irb(main):001:0> s = String.new("foobar")
=> "foobar"
・sのクラスを調べます。
irb(main):002:0> s.class
=> String

 Stringクラスであることがわかりました。

・Stringクラスのスーパークラスを調べます。
rib(main):003:0> s.class.superclass
=> Object

 Objectクラスであることがわかりました。

・Objectクラスのスーパーメソッドを調べます。
irb(main):004:0> s.class.superclass.superclass
=> BasicObject

 Basicクラスであることがわかりました。

・BasicObjectクラスのスーパーメソッドを調べます。
irb(main):005:0> s.class.superclass.superclass.superclass
=> nil

 BasicObjectはスーパークラスを持たないことがわかりました。

よって、Stringクラスの継承階層は下記のようになっていることがわかります。

f:id:sahishiyo:20150517143642p:plain:w150