2016-09-08 4 views
0

継承によるRubyでクラスを作成すると、継承されたクラスの内部に新しいクラスまたはサブクラスのサブクラスが作成されますか?継承によるクラスの作成

+0

これを明確にすることはできますか?あなたは 'クラスB

+0

私はこのリンクを読むことをお勧めします(http://rubylearning.com/satishtalim/ruby_inheritance.html) – davidhu2000

+0

それは他のクラスから継承する新しいクラスを作成します –

答えて

1

Ruby言語仕様は、継承のための特定の実装戦略を規定していません。あらゆる実装は、自由に実装することができます。

しかし、クラスが他のオブジェクトとまったく同じオブジェクトであることを考えると、それらを互いに埋め込むことによって実装するのは非常に複雑になります。オブジェクトがインスタンス変数辞書やクラスポインタ

class RubyObject 
    attr_accessor :instance_variables, :klass 

    def initialize(klass) 
    self.klass = klass 
    self.instance_variables = {} 
    end 
end 

Aモジュールで構成されてい

は、一定のオブジェクト-IS、さらにクラス変数の辞書を持っていますほとんどすべての既存のRuby実装は大体この概要を次の辞書、および方法辞書

class RubyModule < RubyObject 
    attr_accessor :class_variables, :constants, :methods 

    def initialize 
    super(Module) 
    self.class_variables = {} 
    self.constants = {} 
    self.methods = {} 
    end 
end 

クラスモジュール-IS、さらにスーパー

class RubyClass 
    attr_accessor :superclass 

    def initialize(superclass) 
    super() 
    self.superclass = superclass 
    self.klass = Class 
    end 
end 
を持っています