gpt4 book ai didi

java - 即使没有 protected ,类如何访问其父类(super class)变量?

转载 作者:行者123 更新时间:2023-11-29 03:31:42 25 4
gpt4 key购买 nike

给定示例代码:

package com.tt;
class Bigger
{
int a = 5;
}

class lower extends Bigger
{
void m1() {
int z = super.a;
}
}

为什么下级可以访问更大级的变量,即使它们没有受到保护?我指的是这个可见性矩阵

访问修饰符:

         Same Class  Same Package   Subclass   Other packages
public Y Y Y Y
protected Y Y Y N
Default Y Y N N
private Y N N N

最佳答案

派生类 lower 可以访问父类(super class)型 Bigger 上的字段 a 因为字段 'a' 的范围设置为默认范围,包私有(private)。在这种情况下,继承关系对字段的访问没有任何影响。

当没有为字段声明提供范围时,该字段的访问级别默认为包私有(private)。这是 Bigger 类中字段 a 的当前情况。这将授予同一包内的类,例如 lower 对该字段的访问权限。

在您的表中,该字段属于此访问级别:

         Same Class  Same Package   Subclass   Other packages
public Y Y Y Y
protected Y Y Y N
Default Y Y <-- Here N N
private Y N N N

关于java - 即使没有 protected ,类如何访问其父类(super class)变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17829981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com