No. | タイトル |
---|---|
1 | マークダウンの備忘録 |
2 | 現在の記事 |
3 | 投稿記事二つ目 |
クラス継承の記述方法
class Apple < Fruit
#子クラス #親クラス
end
上記の場合、Fruitが親クラス、Appleが子クラスとなります。
class Fruit
def initialize(fruit_name, fruit_color)#(第一引数, 第二引数)仮引数
#initializeメソッドはインスタンス生成時にnewメソッド実行と同時に処理が行われます。呼び出しのための新たな記述はいりません。
@fruit_name = fruit_name
#@fruit_nameはインスタンス変数と呼ばれるものです。
@fruit_color = fruit_color
end
def name
puts "これは#{@fruit_name}です。"#{値}で値の展開を行なっています。
end
# def color
# puts "#{@fruit_color}色です。"
# end
end
class Apple < Fruit
#子クラス #親クラス
def name
puts "これは美味しい#{@fruit_name}です。"
#親クラスで定義した、インスタンスメソッド、インスタンス変数を扱えています。クラス継承の特徴です。
#親クラスのインスタンスメソッドと同名のものを子クラスで用いることでインスタンスメソッドを上書きすることも可能になります。
end
def color
puts "綺麗な#{@fruit_color}色です。"
#子クラスのみのインスタンスメソッドも扱えます。
end
end
apple = Apple.new("リンゴ", "赤")#実引数、実引数と仮引数は数を合わせなければなりません。
apple.name #生成したインスタンス名.インスタンスメソッド名でインスタンスメソッドを呼び出しています。
apple.color
出力結果は**これは美味しいリンゴです。**綺麗な赤色です。
となります。