您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Java子类是否继承私有字段?

Java子类是否继承私有字段?

这里的问题/答案中的大多数困惑都围绕着继承的定义。

显然,正如@DigitalRoss解释的那样,子类的对象必须包含其超类的私有字段。正如他所说,无法访问私人成员并不意味着它不存在。

然而。这与类的继承概念不同。在Java世界中,存在语义问题时,仲裁者是Java语言规范(当前为第三版)。

如JLS所述(https://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.2):

声明为私有的类的成员不会被该类的子类继承。只有声明为protected或public的类的成员才可以在声明该包的包以外的其他包中声明的子类继承。

解决了面试官提出的确切问题:“做子类继承私有字段”。(我加强调)

答案是否定的。他们没有。子类的对象包含其超类的私有字段。子类本身没有其父类的私有字段的NO NOTION。

它是学究性的语义吗?是。这是一个有用的面试问题吗?可能不会。但是JLS为Java世界建立了定义,并且它确实做到了(在这种情况下)。

编辑(从Bjarne Stroustrup中删除一个并行引号,由于Java和c ++之间的差异,这可能只会增加混乱。我将答案放在JLS上:)

java 2022/1/1 18:18:00 有384人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶