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

子类如何保护java.lang.Object的受保护方法?

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

子类如何保护java.lang.Object的受保护方法?

如果引用的表达式的编译时类型是您自己的类或子类,则只能访问其他包中某个类型的受保护成员。(“
your”类是包含代码的类。)您自己的类也必须是最初声明方法的类型的子类。

这是一个例子。假定

base
与所有其他类都在不同的包中:

package first;public class base{    protected void Foo() {}}// Yes, each class is really in its own file normally - but treat// all the classes below as being in package "second"package second;public class Child extends base{    public void OtherMethod(Object x)    {        ((base) x).Foo(); // Invalid: base is not Child or subclass        ((Child) x).Foo(); // Valid: Child is Child        ((GrandChild) x).Foo(); // Valid: GrandChild is subclass of Child        ((OtherChild) x).Foo(); // Invalid: OtherChild is not Child or subclass    }}public class GrandChild extends Child {}public class OtherChild extends base {}

换句话说,它使您可以访问“像您一样的对象”的受保护成员。

详细信息在Java语言规范的6.6.2节中:

protected
对象的成员或构造可以从它仅由代码中声明的封装,它负责该对象的执行外部访问。

6.6.2.1访问受保护的成员

C 为声明受保护成员 m 的类。访问仅在一个子类的主体允许 小号Ç
。此外,如果Id表示实例字段或实例方法,则:如果通过限定名称 Q.Id 进行访问,其中 QexpressionName
,则且仅当表达式 Q 的类型为 S时 ,才允许访问或 S 的子类 。如果通过字段访问表达式 E.Id进行 访问,其中 E
主要对象 表达,或通过一个方法调用表达式 (。)E.Id ,其中 Ë 是一个 主要 表达,则接入是允许的,当且仅当的类型 ë
小号 或的一个子类 小号



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

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

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