gpt4 book ai didi

java - 子类对象如何访问父类(super class)的私有(private)变量,在java中除了类本身不能访问私有(private)变量?

转载 作者:行者123 更新时间:2023-12-01 04:34:21 25 4
gpt4 key购买 nike

这是pac.java文件

package P1; 

public class pac {

int a;
public int b;
private int c;
protected int d;

public pac(){
a=1;
b=2;
c=3;
d=4;
}

public void test(){
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
}
}

这是不同包中的另一个文件pack1.java

package P3;

class pac1 extends P1.pac{
public static void main(String args[]) {
pac1 ob=new pac1();
ob.test();
}
}

问题:
从我展示的两个文件中,文件 P3\pac1.java 创建了一个访问类 P1\pac.java 的私有(private)变量的对象,这怎么可能? ?

最佳答案


在 Java 中,子类对象无法访问任何父类(super class)的私有(private)变量(或方法)
在您的示例中,pac1 类仅访问类 pac 的公共(public)功能,例如公共(public)默认构造函数和公共(public)方法 test()。由于这些方法的实现是在父类(super class)中定义的,因此两者都可以访问其私有(private)功能 - 例如private int c
但是,如果您在子类中重写这些方法,则重写方法实现将无法访问类 pac 私有(private)功能。
HTH。

关于java - 子类对象如何访问父类(super class)的私有(private)变量,在java中除了类本身不能访问私有(private)变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17541842/

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