Rubyで親クラスを継承した子クラスを作成する方法

Rubyである親クラスを継承した子クラスを作成する方法について知りたい。
本記事ではこの様な悩みを解決。
クラス継承の概要・子クラスを作成する方法について解説します。
クラスの継承とは?
クラスの継承とは、あるクラスを親クラス(スーパークラス)として子クラス(サブクラス)でも使える様にする事を表します。
子クラスの作成方法
#親クラス
class Name
def initialize(name)
@name = name
end
end
#子クラス
class Greeting < Name
def message()
puts "#{@name}さん、こんにちは"
end
end
#インスタンス
Greeting.new("kasumi").message()
#kasumiさん、こんにちは
親クラスを継承した子クラス作成のコード例です。
子クラスをインスタンス(実体化)する時に、親クラスで定義されてるnameクラス変数を呼び出す事ができてます。
子クラスを作成する方法は以下の通りです。
class 子クラス名 < 親クラス名
処理
end
上記で実装できます。
親クラスのメソッドを子クラスで上書きする
#親クラス
class Name
def initialize(name)
@name = name
end
def message()
puts "#{@name}さん、おはようございます"
end
end
#子クラス
class Greeting < Name
def message()
puts "#{@name}さん、こんにちは"
end
end
#インスタンス
Greeting.new("kasumi").message()
#kasumiさん、こんにちは
親クラスにあるメソッドを子クラスでオーバーライド(上書き)する事ができます。
オーバーライドの方法は、親クラスで使われてるメソッド名をそのまま子クラスに流用する事でオーバライドできます。
オーバライドする前に親クラスのメソッドを呼び出す
#親クラス
class Name
def initialize(name)
@name = name
end
def message()
puts "#{@name}さん、おはようございます"
end
end
#子クラス
class Greeting < Name
def message()
super
puts "#{@name}さん、こんにちは"
end
end
#インスタンス
Greeting.new("kasumi").message()
#kasumiさん、おはようございます
#kasumiさん、こんにちは
superを使う事でオーバライドする前の親クラスのメソッドを呼び出す事ができます。
superの使い方は以下の通りです。
class 子クラス < 親クラス
def オーバーライドするメソッド名()
super
実行処理
end
end
オーバライドするメソッドの中にsuperを記述します。
上記で、明示的にオーバライド前のメソッドを呼び出せます。
まとめ
クラス継承の概要・親クラスを継承した子クラスを作成する方法について紹介しました。
以上で解説を終わります。