Ven*_* Ch 10 ruby private-methods
我的代码如下:
class A
private
def p_method
puts "I'm a private method from A"
end
end
class B < A
def some_method
p_method
end
end
b = B.new
b.p_method # => Error: Private method can not be called
b.some_method # => I'm a private method from A
Run Code Online (Sandbox Code Playgroud)
b.some_method调用在类中定义的私有方法A.如何在继承它的类中访问私有方法?在所有面向对象的编程语言中,这种行为是否相同?Ruby如何封装?
Sou*_*yay 12
以下是此来源的简要说明:
- 任何人都可以调用公共方法---没有访问控制.默认情况下,方法是公共的(初始化除外,它始终是私有的).
- 受保护的方法只能由定义类及其子类的对象调用.访问权归家庭所有.
- 使用显式接收器无法调用私有方法.因为在使用它们时无法指定对象,所以只能在定义类中调用私有方法,并且可以在同一对象中调用直接后代.
来自类似问题的答案更详细地扩展了该主题:https://stackoverflow.com/a/1565640/814591
| 归档时间: |
|
| 查看次数: |
5329 次 |
| 最近记录: |