Ruby 深掘り #2
クラスの継承
親から子に引き継ぐ。
親クラス(スーパークラス)
共通する部分を記載
子クラス(サブクラス)
個別の情報を記載
class Chichi def initialize(eye_type, height) @eye_type = eye_type @height = height end def attitude puts "目は#{@eye_type}で、背は#{@height}" end end # ChichiからMusukoへ承継 # インスタンス変数とインスタンスメソッドが引き継がれる class Musuko < Chichi end chounan = Musuko.new("一重", "高い") chounan.attitude # => 目は一重で、背は高い
独自メソッドの定義
子クラス(Musuko)内にdef〜end
で定義したものは、その子クラス独自のメソッドとなる
オーバーライド
親クラスに対して、同名の子クラスを定義 => 上書き
上記の例で言えば、Musuko
内にattitude
メソッドを定義する
class Musuko < Chichi def attitude puts "目は#{@eye_type}で、背は#{@height}、長男" end end