为什么Java的“受保护”比默认的受保护要少? [关闭]

2024-01-02

在 Java 中,我们有四个访问说明符:public, protected、包私有(默认)和private。这是well https://stackoverflow.com/questions/215497/in-java-whats-the-difference-between-public-default-protected-and-private/215579#215579 known https://stackoverflow.com/questions/215497/in-java-whats-the-difference-between-public-default-protected-and-private/215579#215579对我来说不是问题。

我的问题是关于命名protected。如图所示这里的桌子 https://stackoverflow.com/a/215505/732016,为字段提供 package-private 的默认访问说明符可防止包外部的子类使用它,但应用关键字protected实际上并没有保护它——相反,它向任何包的子类开放它。

那么,为什么不protected保护事物;为什么less限制性比根本没有修饰符?


如果我们接受这些是应该存在的四个访问级别(私有、包私有、包私有加子类和公共),并且我们接受包私有应该是默认访问级别,而您不这样做指定其他内容,那么这个问题就变成:“为什么 package-private-plus-subclasses 被称为protected?”答案是它借用/继承了 C++ 的术语(C++ 没有“包”的概念,但使用protected意思是“私有加子类”)。

(我将这个答案发布为社区维基,以鼓励其他人添加它,因为我猜测这个故事不仅仅是这个。另外,因为有人可能想添加一些理由来解释为什么这些是四个访问权限应该存在的级别 - 例如,为什么我们有 package-private-plus-subclasses 但没有 private-plus-subclasses - 以及为什么 package-private 应该是默认值。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么Java的“受保护”比默认的受保护要少? [关闭] 的相关文章

  • java.lang.NoClassDefFoundError:org.apache.batik.dom.svg.SVGDOMImplementation

    我在链接到我的 Android LibGDX 项目的 Apache Batik 库时遇到了奇怪的问题 但让我们从头开始 在 IntelliJ Idea 中我有一个项目 其中包含三个模块 Main Android 和 Desktop 我强调的
  • 如何为最终用户方便地启动Java GUI程序

    用户想要从以下位置启动 Java GUI 应用程序Windows 以及一些额外的 JVM 参数 例如 javaw Djava util logging config file logging properties jar MyGUI jar
  • Java EE:如何获取我的应用程序的 URL?

    在 Java EE 中 如何动态检索应用程序的完整 URL 例如 如果 URL 是 localhost 8080 myapplication 我想要一个可以简单地将其作为字符串或其他形式返回给我的方法 我正在运行 GlassFish 作为应
  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • 给定两个 SSH2 密钥,我如何检查它们是否属于 Java 中的同一密钥对?

    我正在尝试找到一种方法来验证两个 SSH2 密钥 一个私有密钥和一个公共密钥 是否属于同一密钥对 我用过JSch http www jcraft com jsch 用于加载和解析私钥 更新 可以显示如何从私钥 SSH2 RSA 重新生成公钥
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • 从 127.0.0.1 到 2130706433,然后再返回

    使用标准 Java 库 从 IPV4 地址的点分字符串表示形式获取的最快方法是什么 127 0 0 1 到等效的整数表示 2130706433 相应地 反转所述操作的最快方法是什么 从整数开始2130706433到字符串表示形式 127 0
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 在mockito中使用when进行模拟ContextLoader.getCurrentWebApplicationContext()调用。我该怎么做?

    我试图在使用 mockito 时模拟 ContextLoader getCurrentWebApplicationContext 调用 但它无法模拟 here is my source code Mock org springframewo
  • Java列表的线程安全

    我有一个列表 它将在线程安全上下文或非线程安全上下文中使用 究竟会是哪一个 无法提前确定 在这种特殊情况下 每当列表进入非线程安全上下文时 我都会使用它来包装它 Collections synchronizedList 但如果不进入非线程安
  • 如何在桌面浏览器上使用 webdriver 移动网络

    我正在使用 selenium webdriver 进行 AUT 被测应用程序 的功能测试自动化 AUT 是响应式网络 我几乎完成了桌面浏览器的不同测试用例 现在 相同的测试用例也适用于移动浏览器 因为可以从移动浏览器访问 AUT 由于它是响
  • simpleframework,将空元素反序列化为空字符串而不是 null

    我使用简单框架 http simple sourceforge net http simple sourceforge net 在一个项目中满足我的序列化 反序列化需求 但在处理空 空字符串值时它不能按预期工作 好吧 至少不是我所期望的 如
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • 使用 JMF 创建 RTP 流时出现问题

    我正处于一个项目的早期阶段 需要使用 RTP 广播DataStream创建自MediaLocation 我正在遵循一些示例代码 该代码目前在rptManager initalize localAddress 出现错误 无法打开本地数据端口
  • 使用 xpath 和 vtd-xml 以字符串形式获取元素的子节点和文本

    这是我的 XML 的一部分

随机推荐

  • 写 FizzBu​​zz

    读完这本编码恐怖小说后 我再次遇到了 FizzBu zz 原帖在这里 编码恐怖 为什么程序员不能编程 http www codinghorror com blog 2007 02 why cant programmers program h
  • 我们如何将 Perl 哈希引用绑定到 java 哈希映射

    我在用内联 Java https metacpan org pod Inline Java在 Perl 中 我需要将哈希传递给 Java 方法 我尝试过以下代码 my obj new Pod 101 my data input gt 45
  • 如何在链表中的给定位置插入项目?

    这是添加项目的方法 public void insert Object item Link add new Link add data item add next head head add listsize 但是如何在给定位置添加项目 到
  • 使用 Chart.js 将自定义文本添加到条形图标签值

    我正在使用 Chart js 插件来显示条形图 我得到的输出如下 My question is about how to add a custom text after rendering a value to bar For exampl
  • 使用 mongoose 过滤 mongoDB 中的嵌套数组

    我需要过滤 MongoDB 中的多级嵌套数组 架构如下 id 1234 array1 id a11 array2 id a21 array3 id a31 status done id a32
  • 打开自定义协议后关闭浏览器窗口

    我创建了一个 ASP Net 应用程序页面来处理打开FileSite http interwoven com cn products worksite deskmail site html链接 有一个自定义协议可以正确处理链接 即它打开文件
  • 如何创建白色的CSS框阴影

    我的网站上有以下框阴影 css 它在 Chrome 中看起来很棒 但 Firefox 和 IE 无法重现我正在寻找的效果 我只想在盒子的底部有一个白色的实心阴影 如何使其适用于所有浏览器 box shadow 0px 10px 14px 1
  • 如何禁用 netbeans 中的“扫描外部更改”?

    如何在 netbeans 中禁用 扫描外部更改 通过取消标记此处提到的复选框 https web archive org web 20110513031753 http blogs oracle com netbeansphp entry
  • 无法在索引 2 处绑定参数,因为索引超出范围

    我正在努力解决这个问题 任何人都可以帮我解决这个问题吗 请让我知道查询语句中的 where 子句哪里出了问题 我想从所有列中读取值 然后将其显示出来 这是我的查询代码 public class MainActivity extends Ap
  • 重新排序内存中的字节,然后写入文件

    我在内存中有一个数据块 从memory ptr 该程序的作用是对每个 qword 进行字节反转 然后将其写入文件 例如 18171615141312112827262524232221将写成1112131415161718212223242
  • 在 pandas 数据框中查找具有相同列值的行

    我有两个具有不同列大小的数据框 其中四个列在两个数据框中可以具有相同的值 我想在 df1 中创建一个新列 如果 df2 中的一行与 df1 中的一行具有相同的 A B C 和 D 列值 则该新列的值为 1 如果没有这样的行 我希望该值为 0
  • 如何为具有 VARBINARY(MAX) 字段的表生成 INSERT 脚本?

    我有一张桌子 上面有VARBINARY MAX 字段 SQL Server 2008 具有FILESTREAM 我的要求是 当我部署到生产环境时 我只能向 IT 团队提供一组按特定顺序执行的 SQL 脚本 我在生产中制作的新表有这个VARB
  • 未设置 vs. = NULL [重复]

    这个问题在这里已经有答案了 可能的重复 使用 PHP 释放内存哪个更好 unset 或 var null https stackoverflow com questions 584960 whats better at freeing me
  • ExtJS 图表的性能比 FusionCharts 更好吗?

    我们正在考虑在应用程序中用 ExtJS 图表替换 FusionCharts 因为 我们已经在整个 UI 中使用了 ExtJS 如果能够消除另一个商业第三方依赖项和 API 的开销和费用 那就太好了 我们希望能够在无 Flash 的移动设备上
  • 如何在 Ruby on Rails 中覆盖 Materialise CSS?

    我一直在互联网上浏览一些关于 Rails 中的 Materialise 的帖子 但是这个领域似乎非常模糊 我目前正在使用 Materialize sass gem 我没有找到很多有用的帖子 我决定来这里 这是我的页面代码pages disc
  • ggplot2 在箱线图顶部添加文本

    我有一个正在绘制的数据ggplot2作为箱线图 看起来像 gt head varf sID variable value 1 SP SA036 SA040 CM0001 0 492537313 2 SP SA036 SA040 CM0001
  • jQuery 加载动态元素

    我正在尝试对动态添加到页面上某些容器的元素进行一些条件操作 但我错过了一个事件 假设我有一个容器 div div 我可以轻松地将事件处理程序绑定到所有新元素的单击函数 使用 container on click sub element fu
  • Siri 无法在现有项目中运行

    我必须使用 Siri 通过我的应用程序发起 VoIP 呼叫 它在演示项目中工作 但当我将意图扩展添加到现有项目中时 Siri 不再工作 在系统设置中 我的应用程序未显示在应用程序支持部分中 Plist配置如下 另请参阅扩展的 plist 配
  • hashmap的负载因子和容量

    如何找到hashmap当前的负载因子和容量 Map m new HashMap 10 1 but after lots of works Here how to get current values 您不应该能够获得负载系数和容量 它们是
  • 为什么Java的“受保护”比默认的受保护要少? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi