概要
BasicObject
詳細
BasicObjectは特殊な用途のために意図的にほとんど何も定義されていないクラスです。
最低限のメソッドしか保持していないため、メタプログラミングを行う際などに
余計なメソッドと衝突して邪魔されたくないような場合に意図的に基底クラスとして利用します。
継承関係の確認
# encoding: utf-8 require "erb" def println(value) print "#{value}\n" end class Hoge end module Hogeable end class ExtendHoge < Hoge include Hogeable end println BasicObject.ancestors println Kernel.ancestors println Object.ancestors println Class.ancestors println Hoge.ancestors println ExtendHoge.ancestors
出力
[BasicObject] [Kernel] [Object, Kernel, BasicObject] [Class, Module, Object, Kernel, BasicObject] [Hoge, Object, Kernel, BasicObject] [ExtendHoge, Hogeable, Hoge, Object, Kernel, BasicObject]