java保护访问,Java中受保护的访问修饰符

小编典典

该网页链接@MadProgrammer给出了一个体面的解释:

“ protected修饰符指定只能在自己的包中访问该成员(与package-private一样),并且只能由其在另一个包中的类的子类访问。”

这意味着受保护的成员必须直接通过其定义的类或该类的子类进行访问,同时也要位于适当的包中。这不一定意味着您可以通过在所述类的子类中创建的所述类的实例来访问受保护的成员。重点是所涉及的软件包。

这是您的示例:

package first; // Current package

First fst = new First(); // from package first and does not extend anything

fst.pro();

试图从哪个软件包访问有问题的成员? 第一

是否在同一包中定义了包含所述成员的(子)类或其父类(从其继承该成员的类)? 是的,First被定义在package

first,所以protected成员是从访问First中package first。

package second; // Current package

First fst = new First(); // from package first and does not extend anything

fst.pro();

试图从哪个软件包访问有问题的成员? 第二

是否在同一包中定义了包含所述成员的(子)类或其父类(从其继承该成员的类)? 不,First被定义在package

first,所以protected使得成员从人迹罕至First的package second。

package second; // Current package

Second sec = new Second(); // from package second and extends First from package first

sec.pro();

试图从哪个软件包访问有问题的成员? 第二

是否在同一包中定义了包含所述成员的(子)类或其父类(从其继承该成员的类)? 是的,Second,这是在所定义package

second,继承了部件First,因此protected部件是从访问Second中package second。

为了清楚起见,有更多示例:

package first; // Current package

Second sec = new Second(); // from package second and extends First from package first

sec.pro();

试图从哪个软件包访问有问题的成员? 第一

是否在同一包中定义了包含所述成员的(子)类或其父类(从其继承该成员的类)? 是的,Second继承了构件First,这是在所定义package

first的,所以protected构件是从访问Second中package first。

package first; // Current package

Third third = new Third(); // from package third and extends Second from package second,

// which extends First from package first

third.pro();

试图从哪个软件包访问有问题的成员? 第一

是否在同一包中定义了包含所述成员的(子)类或其父类(从其继承该成员的类)?

是的,Third继承了构件Second,它继承它从First其中该构件被定义(package

first),所以protected部件是从访问Third在package first。

2020-09-16

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值