java - 在java中继承后受保护的成员会发生什么?
问题描述
正如在 C++ 中,受保护的成员在私有继承中变得私有。所以我很困惑 Java 中发生了什么。这里访问说明符保持不变还是什么?喜欢
如果假设下面的代码存在,那么现在 shiva 仍将在 classB 内保持受保护状态?我们可以在 classC 中再次使用它吗?
任何帮助将不胜感激。
package package1
class classA
{
protected shiva;
}
////////////////////////
import package1
package package2
class classB extends classA
{}
//////////////////////
import package2
class classC extends classB
{}
解决方案
是的,您可以使用它。
│ Class │ Package │ Subclass │ Subclass │ World
│ │ │(same pkg)│(diff pkg)│
────────────┼───────┼─────────┼──────────┼──────────┼────────
public │ + │ + │ + │ + │ +
────────────┼───────┼─────────┼──────────┼──────────┼────────
protected │ + │ + │ + │ + │
────────────┼───────┼─────────┼──────────┼──────────┼────────
no modifier │ + │ + │ + │ │
────────────┼───────┼─────────┼──────────┼──────────┼────────
private │ + │ │ │ │
+ : accessible blank : not accessible
如需更多参考,请在此处找到此问题的答案。在我看来类似。
推荐阅读
- php - 如何将多个数据集插入到多个表中
- dart - 如何在另一个列表中添加不相似的元素?
- mongodb - 使用指南针的分片集合的mongodb更新字段
- android - 如何使用多个 NavHostFragment 创建深层链接
- android - 在fragment之间切换时如何保存map的状态?
- flutter - 我是否需要使用 ProxyProvider - 或重组我的数据模型?
- for-loop - 为什么这个 for 循环中的 fminunc 每次都给出相同的结果?
- google-cloud-speech - 谷歌语音通过 API 和网站发送不同的结果
- javascript - 使用 React Router 根据当前视图有条件地渲染背景图像
- c# - 如何正确地将对象绑定到树视图