0
我有一個簡單的Ruby基類,其中所有方法都需要保護可見性。當另一個類繼承基類並調用它的方法時,會出現問題。 Ruby解釋器停止並告訴我它解釋的第一個方法是受保護的方法,並告訴我該類不能調用它。這裏是我的代碼:Ruby受保護的方法問題
class Base
protected
def methodOne
# method code
end
def methodTwo
# method code
end
end
當子類從基地調用一個方法時發生錯誤。
Subclass.new.methodOne
我明顯錯過了Ruby的可見性/繼承模型。任何幫助表示讚賞!
我在我原來的職位是錯誤的。呼叫線路是Extended.new.methodOne。使用你的答案,我只是在Extended中創建了一個構造函數,並且像你所建議的那樣調用了self.methodOne。我覺得很奇怪Extended.new.methodOne會調用一個錯誤。 – webren 2011-02-27 21:12:30
如果您將方法的調用看作內部(使用您自己的方法)和外部(使用其他對象的方法)。外部你只能調用公共方法。內部可以調用所有公共方法,所有你自己的私有方法(但不是那些繼承的方法)以及所有你自己的和繼承的受保護方法。 – 2011-02-28 09:30:48