Ruby 初心者スレッド Part 53
■ このスレッドは過去ログ倉庫に格納されています
0369デフォルトの名無しさん
2013/12/27(金) 00:14:04.02ミックスインと継承は、どちらも既存の部品を拡張して新しい部品を作るという意味で似ている
ただし拡張元の部品がミックスインではモジュールであるのに対し、
継承ではクラスであるという点で、両者は異なるもの
そしてRubyのクラス(=Classクラス)はモジュール(Moduleクラス)のサブクラスであり、
モジュールとクラスの違いがミックスインと継承との違いをもたらす
そんな(モジュールには無くて)クラスにある特徴の一つが、属性(=インスタンス変数)を持てる事
たとえば「箱(Box)」クラスを継承すれば:
・「色(color)」属性を持つサブクラス「色付き箱(ColoredBox)」や
・「角度(angle)」属性を持つ「回転可能な箱(RotatableBox)」を
定義できるけど、ミックスインでは
新しい部品に「振る舞い(=機能)」は追加できても、属性を付け加えることができない
■ このスレッドは過去ログ倉庫に格納されています