1
0

More than 3 years have passed since last update.

クラス継承について。

Last updated at Posted at 2020-09-05
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

出力結果はこれは美味しいリンゴです。綺麗な赤色です。
となります。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0