classlas Creature
attr_accessor :name
attr_accessor :price
attr_accessor :length
def initialize(name:, price:, length:)
self.name = name
self.price = price
self.length = length
end
def profile
return "#{self.name}は#{self.price}円です。全長は#{self.length}mくらいになります。"
end
end
require "./Creature" #creatureクラスを継承
class Fish < Creature
attr_accessor :swim_speed
def initialize(name:, price:, length:, swim_speed:)
#superを用いてCreatureクラスのinitializeメソッドとの共通項をまとめて継承
super(name: name, price: price, length: length)
self.swim_speed = swim_speed
end
#profileを継承&オーバーライド
def profile
return "#{self.name}は#{self.price}円です。全長は#{self.length}mくらいです。
泳ぐ速さは#{self.swim_speed}km/hくらいです。"
end
end
require "./Creature" #Creatureクラスを継承
class Reptiles < Creature
attr_accessor :run_speed
def initialize(name:, price:, length:, run_speed:)
#superを用いてCreatureクラスのinitializeメソッドとの共通項をまとめて継承
super(name: name, price: price, length: length:)
self.run_speed = run_speed
end
def profile
return "#{self.name}は#{self.price}円です。全長は#{self.length}mくらいです。
走る速さは#{self.run_speed}km/hくらいです。"
end
end
#それぞれのクラスを読み込み
require "./Fish"
require "./Reptiles"
fish1 = Fish.new(name:"バショウカジキ", price:750, length:3.3, swim_speed:112)
fish2 = Fish.new(name:"錦鯉", price:40000000, length:30, swim_speed:16)
reptile1 = Reptiles.new(name:"バシリスク", price:8000, length:0.6, run_speed:3.6)
reptile2 = Reptiles.new(name:"ブラックマンバ", price:50000, length:2, run_speed:16)
creatures = [fish1, fish2, reptile1, reptile2]
number = 1
creatures.each do |creature|
puts "No.#{number} #{creature}"
number += 1
end
puts "どの生き物が気になりますか?"
creature_number = gets.chomp.to_i
selected_creature = creatures[creature_number][:name]
puts "#{selected_creature}ですね。かわいいですよね。おすすめです。"