Java权限讲解

      Java访问权限就如同类和对象一样,在Java程序中随处可见。        

   Java的访问权限,根据权限范围从大到小为:public > protected > package > private。

   在讲解之前要说明的是:这里的“使用”一词的意思是,类的实例化(实例化一个对象),属性的访问和方法的调用。

   首先讲解Java类的访问权限。Java中的类只有两种访问权限,public和package(默认访问权限)。如果一个类被public修饰,那么这个类可以在任何包中被使用。如果一个类的权限是package,那么这个类只能在其所在的包中被使用。        

   接下来讲解属性和方法的访问权限。首先属性和方法的访问权限受限于类的访问权限,即属性和方法的访问权限最大为类的访问权限。当一个属性或方法的访问权限为public时,如果其所属类的访问权限是public,那么这个属性或方法就可以在任何包中被调用;如果其所属类的权限为package时,那么这个属性或方法只能在其所属类所在的包中被调用。当一个属性或方法的访问权限为package时,那么这个属性或方法只能在其类所在的包中被调用。当一个属性或方法的访问权限是private时,那么这个属性或方法只能在类中被调用。

   然后来讲解protected来修饰属性或方法的情形。如果一个属性或方法被protected修饰,首先这个属性或方法只能在类所处的包中被使用。其次,如果有类继承了父类中的protected修饰的属性或方法,那么子类也可以访问父类中的protected属性或方法,即使子类与父类不在同一个包中。

   最后来讲解一下继承中的访问权限问题。在继承中,子类覆写父类的方法时,方法的访问权限必须大于等于父类中方法的访问权限。如果子类和父类在同一个包中,那么子类可以继承父类中被public、protected、package修饰的属性和方法。如果子类和父类不在同一个包中,那么子类只能继承父类中被public、protected修饰的方法。如果在package A中有类Base, 在package B中有类Son,Son继承Base, Base base = new Son(), 那么base对象在进行方法调用时必须知道,base对象所能调用的方法的权限是取决于Base类中方法的访问权限,而非Son中方法的访问权限。

  

  

  

转载于:https://www.cnblogs.com/wss-is-knight/p/4154208.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值