为什么我们不能将类定义为 protected
?
我知道我们不能,但为什么呢?应该有一些具体的原因。
原文由 M.J. 发布,翻译遵循 CC BY-SA 4.0 许可协议
如您所知,default 用于包级别访问,而 protected 用于包级别加上非包类,但它扩展了此类(这里要注意的一点是,只有当它可见时,您才能扩展该类!)。让我们这样说:
因为没有办法限制这个类只能被少数类子类化(我们不能限制类只能被包中/包外所有可用类中的少数类继承),所以没有使用受保护的访问说明符对于顶级课程。因此这是不允许的。
原文由 Akash5288 发布,翻译遵循 CC BY-SA 3.0 许可协议
4 回答1.5k 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
3 回答1.9k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答769 阅读✓ 已解决
2 回答1.7k 阅读
因为这没有意义。
受保护的类成员(方法或变量)就像包私有的(默认可见性),只是它也可以从子类中访问。
由于在 Java 中没有“子包”或“包继承”这样的概念,因此声明类受保护或包私有是一回事。
不过,您可以将嵌套类和内部类声明为受保护的或私有的。