我是靠谱客的博主 顺心台灯,最近开发中收集的这篇文章主要介绍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

最后

以上就是顺心台灯为你收集整理的java保护访问,Java中受保护的访问修饰符的全部内容,希望文章能够帮你解决java保护访问,Java中受保护的访问修饰符所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部