Java的Protected修饰符

        Protected字段是为了继承而设计的.首先,一般的字段由于封装性,一般设置成private,但如果有新类继承当前字段所属的类,就要修改当前字段的访问控制权限. 

        如果子类和父类在同一个package中,只需要将private去掉,权限变为包访问权限即可;但是如果子类和父类不在同一个包内,为了能够让继承实现,必须把private改成public.对于类库和客户端程序而言,他们大多不在一个包内,为了能够让子类访问而改成public,这样使得其他不相关的类也能访问该成员(或方法),增加了风险. 

        所以设计了protected字段,他介于public和包访问权限之间.在跨包访问的过程中做了一个条件限定:包权限 + 只能让跨包的子类访问 (public权限 - 非子类跨包访问) 

        非常要注意的是,protected权限中的子类可访问指的是:在子类中可以通过子类对象直接访问继承来的父类的protected对象,但是不能通过父类对象访问该protected对象。同时, 

        在第三个类(不与子类、父类在同一个包)中,同过子类对象访问父类的protected成员或者方法,不行(只能在子类中) 

Eg: 

Package nima 

Public class TTG{ 

        Private int meme; 

        Private int gg; 

        Public static void main(String[] args){ 

                Element Ele = new Element(1,2); 

                Ele.clone(); 

        } 

}  

Class Element{ 

        Int id; 

        Int value; 

        Public Element(int id, int value){ 

                This.id = id; 

                This.value = value; 

        } 

可以发现,子类Element从父类Object继承来的protected方法,只能在Element中访问,而在第三方类TTG中,不能通过其对象访问 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值