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

news/2025/2/24 17:02:46

小编典典

该网页链接@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


http://www.niftyadmin.cn/n/3089491.html

相关文章

如何做好一个Team leader(转)

1.领导和管理 人们乐于被领导;他们不喜欢被管理,不喜欢像牛一样被驱赶或指挥。 管理者强迫人们服从他们的命令,而领导者则会带领他们一起工作。 管理是客观的,没有个人感情因素,它假定被管理者没有思想和感受…

Java 接口和抽象类是什么,有什么区别

抽象(abstract)和接口(interface)在Java中都是关键字,也就说明他们足够重要,而抽象类和接口为我们面向对象编程提供了非常大的帮助。下面我们就一起来回顾这基础知识。 抽象类 在构建某些未实现方法的类时,你可能会第一个想到接口&#xff0c…

solidity[47]-interface

接口接口本意是物体之间连接的部位。例如电脑的usb接口可以用来连接鼠标也可以连接U盘和硬盘。因此,使用标准的接口可以极大的拓展程序的功能。在solidity语言中,接口可以用来接受相同规则的合约,实现可更新的智能合约。接口定义接口需要有in…

php 服务器打印,php – 如何在服务器上呈现网页(无GUI)进行打印?

我正在尝试用PHP脚本实际打印页面到办公室打印机.这是我到目前为止所得到的:我在服务器上安装了一台打印机,我可以通过命令行的print命令用PHP向它发送作业.我也可以用我的PHP脚本编写纯文本文件,然后将它们添加到打印提示中.所以使用PHP打印PHP生成的纯文本文件就可…

WinForm窗体之间交互的一些方法[转]

实际上过去我也写过类似的主题,这里把各种方法总结一下,内容的确基础了一些,所以这篇文章是写给刚刚学习C#的同行们的,希望对大家有些帮助吧!很抱歉,这篇文章没有诡异的bug来勾起大家的兴趣,但是…

Linux系统之临时和永久修改hostname主机名

1、临时修改主机名:$ sudo hostname 主机名修改只能临时有效,机器重启后会自动还原。 2、永久修改主机名:修改hostname文件(路径:/etc/hostname):$ sudo nano /etc/hostname把hostname文件里面所…

聊聊flink的SourceFunction

序 本文主要研究一下flink的SourceFunction 实例 // set up the execution environmentfinal StreamExecutionEnvironment env StreamExecutionEnvironment.getExecutionEnvironment();DataStreamSource<String> dataStreamSource env.addSource(new RandomWordSource(…

php只取数字,php如何实现只取数字的功能

php只取数字的实现方法&#xff1a;1、使用“preg_match”函数从字符串中提取数字出来&#xff1b;2、使用PHP内置的“in_array”方法将字符串中出现的数字都提取出来&#xff0c;并拼接在一起&#xff1b;3、使用“is_numeric”方法。php 从字符串中提取数字出来1、正则提取【…