sample.rb
class Greeting
def hello
puts "こんにちは #{@name}さん"
end
def goodmorning
puts "おはよう #{@name}さん"
end
def goodevening
puts "こんばんわ #{@name}さん"
end
end
class Tanaka < Greeting
# Greeting を継承
def initialize(name)
@name = name
end
def goodbye
# Tanaka クラスのオブジェクトで使用可能な goobye メソッド
puts "#{@name}さん さよなら"
end
end
class Sato < Greeting
# Greeting を継承
def initialize(name)
@name = name
end
end
tanaka = Tanaka.new("Tanaka")
tanaka.hello #=>こんにちは Tanakaさん
tanaka.goodmorning #=>おはよう Tanakaさん
tanaka.goodevening #=>こんばんわ Tanakaさん
tanaka.goodbye #=>Tanakaさん さよなら
sato = Sato.new("Sato")
sato.hello #=><こんにちは Satoさん
sato.goodmorning #=>おはよう Satoさん
sato.goodevening #=>こんばんわ Satoさん
#sato.goodbye => エラー
# Userオブジェクトなので継承したGreetingクラスのhelloメソッドを使用可能
#継承の使い方は複数あるクラスの共通処理をまとめて置いたりする。
# => つまり継承元にメソッドを定義しておくことによって複数のクラスオブジェクトで使うことが
#可能となる。