ruby中访问控制public、protected、private详解
上一篇 /
下一篇 2012-11-02 18:36:50
/ 个人分类:ruby
1、总结
public:默认类型,可以被定义它的类和其子类访问,可以被类和子类的实例对象调用
private:可以被定义它的类和其子类访问,不能被类和子类的实例对象直接调用
2、使用方法
1)在方法前使用
private
def mtd
...
end
2)在方法后使用
def mtd
...
end
private :mtd
3、示例
#定义父类
class Animal
attr_accessor :name
def initialize(name)
@name = "name"
end
def eat
puts "eating"
end
def run
puts "running"
end
private :eat
protected :run
end
#定义子类
class Cat<Animal
def subeat
puts eat #子类可以访问private的方法
end
def subrun
puts run #子类可以访问protected的方法
end
end
animal = Animal.new("aaa")
animal.eat #类的实例无法访问private的方法
animal.run #类的实例无法访问protected的方法
cat = Cat.new("sss")
cat.eat #子类的实例无法访问private的方法
cat.run #子类的实例无法访问protected的方法
cat.subeat
cat.subrun
输出结果:
eating
nil
running
nil
收藏
举报
TAG:
Private
public
Ruby
ruby
protected
private