只是搞亂了Ruby,正在嘗試以下操作。我知道我可以用案例陳述來做到這一點,但是實現它的正確方法是什麼?在Ruby中反向(?)類繼承
我希望它能夠輸入
Animals.new.interact
,並得到取決於動物正確的回覆是什麼。
目前,我得到一個答覆
You are a eagle
Not defined !
(repl):9:in `fly'
(repl):14:in `interact'
(repl):1:in `<main>'
但我希望類似的規定(如果樣品是企鵝例如)
You are a penguin
you cannot fly !
讚賞任何想法。
class Animals
SPECIES = []
attr_accessor :name
def initialize
@name = SPECIES.sample
end
def fly
raise "Not defined !"
end
def interact
puts "You are #{self}"
fly
end
def to_s
"a #{@name}"
end
end
class Penguin < Animals
def initialize
@name = "penguin"
SPECIES << @name
end
def fly
puts "you cannot fly !"
end
end
class Eagle < Animals
def initialize
@name = "eagle"
SPECIES << @name
end
def fly
puts "you fly high up the mountains !"
end
end
Penguin.new
Eagle.new
這似乎是一個小的事情,但做竭盡全力,讓您的縮進一致性和正確性。當在這裏閱讀問題時,每一刻花費在試圖弄清楚你的代碼意味着什麼是花時間不回答問題。 – tadman