如果我有一個類Salad
與方法chew
和我使用super
它,它會調用下一個可用的chew
方法可用上去的祖先鏈。如果我想「達到兩個等級」(到第二個可用的chew
方法上漲)怎麼辦?在沒有將super
添加到第一個祖先的方法的情況下,有什麼辦法可以做到這一點?紅寶石對象可以在「祖父母」上超級呼叫嗎?
爲了使這個多一點具體的,假設這是我Salad
級帶salad
對象:
class Salad < Food
include Almonds
include Gorgonzola
include Spinach
include Dressing
def chew
super
end
end
salad = Salad.new
祖先的陣列會是這樣的:
[Salad, Dressing, Spinach, Gorgonzola, Almonds, Food, Object, Kernel, BasicObject]
如果我想要salad.chew
觸發chew
方法Spinach
而不添加super
來敷料#咀嚼,這是可能的嗎?有沒有辦法達到兩個層面(就像super
「達到」一個層面一樣)?
你有那說明了爲什麼*您正在試圖做你想要做什麼更具體的例子*? –
例如,如果我可以回答,按照程序員想要的方式來解決繼承菱形的線性化問題。 –