0
0

More than 3 years have passed since last update.

class継承とその身近な例について

Posted at

class継承とその身近な例について

おはようございます。Qiita初投稿です。

本日は、rubyのclass継承と、その身近な例についてお話しできたらと思います!
ちょうど最近、なるほどなあと思ったので、共有したいと思います。
もしかしたら、あたりまえすぎるかもしれません。

ただ、もし読んでいただいた方にとって、何かプラスになれば幸いです!

1、クラス継承とは

クラス継承とは、あるクラスを元に他のクラスを作成することです。
元になったクラスを親クラス、新しいクラスを子クラスといいます。
親から子に引き継ぐことで、引継ぎ前のクラスも使えつつ、新しいクラスを作成できます。
なんて感動的な親子関係。

2、書き方

小クラスの横に<をつかって親クラスを書くだけ

example.rb
class Child < Parent
#ParentクラスをChildクラスに継承

クラスのなので、頭文字は大文字です。
こうすることで、親クラスを使えます。

3、親クラスの何が使えるの?

主に二つです。
・親クラスのインスタンス変数
・親クラスのインスタンスメソッド

以下に、クラス継承の例を記載しました。
処理の流れをざっと記載します。
①barcelonaと言う変数に、Barcelonaクラスのインスタンスを作成
②Barcelonaクラス作成時に、Soccer_playerクラスのinitializeメソッドが適用される。引数がインスタンス変数に代入される。
③barcelonaにBarcelonaクラスのplayerメソッドを適用している。

example.rb
class Soccer_player #親クラス
  def initialize(name,position)
    @name = name
    @position = position
    #新しくインスタンスを作成
  end
end

class Barcelona < Soccer_player
  def player
    puts "私の名前は#{@name}、ポジションは#{@position}、現在、バルセロナに所属しています。"
    #Soccer_playerクラスのインスタンス変数を使用している。
  end
end

barcelona = Barcelona.new("メッシ","フォワード")
#Soccer_playerクラスを引き継いでいるので、Soccer_playerクラスのイニシャライズメソッドが適用される。
barcelona.player
#処理結果:私の名前はメッシ、ポジションはフォワード、現在、バルセロナに所属しています。

4、身近な例

ここまでクラス継承について記載しましたが、ぶっちゃけどうでしょう?
へぇーって感じじゃないですか?
なので、最近身近でなるほどな!と感じた例を紹介したいと思います!

クラス継承が行われている場面があります。
それは、railsのコントローラーです。

コントローラーの冒頭を見てみると、こんな記載があります。

hoges_controller.rb
class HogesController < ApplicationController

これってつまり、ApplicationControllerをHogescontrollerへ引き継いでいるんですね。
ちなみにですが、作成したコントローラーには上記の記述が入っています。

なので、どのコントローラーもApplicationControllerの処理を実施できるわけです。

0
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
0
0