Ruby学习笔记_public,protected,private

class Person
	def speak
		" protected:speak "
	end
	def laugh
	" private:laugh"
	end
	
	protected :speak
	private   :laugh
	
	def useLaugh(another)
		puts another.laugh #这里错误,私有方法不能指定对象
	end
	
	def useSpeak(another)
		puts another.speak
	end
end

class Student<Person
	def useLaugh
		puts laugh
	end
	
	def useSpeak
		puts speak
	end
end

p1=Person.new
#p1.speak   实例对象不能访问protected方法
#p1.laugh   实例对象不能访问private方法

p2=Student.new
p2.useSpeak  #protected可以被定义它的类和其子类访问
p2.useLaugh  #private可以被定义它的类和其子类访问

puts "------------------"

p2=Person.new
p2.useSpeak(p1) # protected:speak
#p2.useLaugh(p1)


● public方法,可以被定义它的类和其子类访问,可以被类和子类的实例对象调用;
● protected方法,可以被定义它的类和其子类访问,不能被类和子类的实例对象直接调用,但是可以在类和子类中指定给实例对象;
● private方法,可以被定义它的类和其子类访问,私有方法不能指定对象。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值