栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java:跨包的受保护的访问

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java:跨包的受保护的访问

ExtendsprotectedClass
该类中的代码被允许
ProtectedClass
通过type的引用访问受保护的成员
ExtendsprotectedClass
。从JLS第6.6.2节中:

可以从包的外部访问对象的受保护成员或构造函数,而在包中只能通过负责该对象实现的代码声明该对象。

令C为声明受保护成员m的类。仅在C的子类S的主体内允许访问。此外,如果Id表示实例字段或实例方法,则:

  • 如果通过限定名称Q.Id(其中Q是expressionName)进行访问,则且仅当表达式Q的类型为S或S的子类时,才允许访问。[…]

UsesExtendedClass
对的实现不负责
ExtendsprotectedClass
,因此最终调用失败。

编辑:这背后的原因是

protected
访问旨在帮助子类实现其所需的功能,从而比通常提供更多的对超类内部的访问。如果 所有
代码都可以使用,那将很接近将方法公开。基本上,可以信任子类不破坏封装;可以使用子类。它们在自己类型的对象中具有更多功能。公用API不应公开那些细节,但是受保护的API可以仅为给子类提供更多机会的目的。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/573966.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号