如果我在Object類(定義爲private)中定義一個方法,我可以從另一個類中調用它嗎?我的意思是,當我從Dog類中調用say_hello時,如果say_hello是頂級定義的方法並且因此對於Object類是私有的,它將如何解決?我知道Object類是在所有類的方法查找中,但是如果方法是私有的,它不應該是正確的?頂級方法可以從Ruby的另一個類訪問?
def say_hello
p "Hello"
end
class Dog
def test_hello
say_hello
end
end
prova = Dog.new
prova.test_hello
我想我的懷疑更容易的解釋是:爲什麼我可以調用一個孩子的父母的私人方法?
class Animal
private
def prova
p "hello"
end
end
class Dog < Animal
def test_hello
prova
end
end
prova = Dog.new
prova.test_hello
我不知道在Ruby中,擴展類可以訪問其父項的私有方法... – 2013-03-18 23:19:34