java 我们可以修改子类中的私有变量吗[duplicate]

dffbzjpn  于 2023-02-02  发布在  Java
关注(0)|答案(3)|浏览(142)
    • 此问题在此处已有答案**:

Accessing private instance variables of parent from child class?(11个答案)
四年前关闭了。
我们可以通过子类*修改 * 私有变量吗?
我们可以通过set和get方法来使用它,但是我们如何在子类中修改它们。

js81xvg6

js81xvg61#

您没有通过子类对private父类成员的直接访问权限。您可以在父类中使用protectedpublic访问修饰符指定gettersetter,并通过调用适当的方法- getter或setter来更改或读取父类private成员的值。
您如何实现这一目标的示例:

class Parent {
    private int member;
    public void setMember(int member) { // setter
        this.member = member;
    }
    public int getMember() { // getter
        return member;
    }
}

class Child extends Parent {}

public class TestClass {

    public static void main(String[] args) throws IOException {
        Child child = new Child();
        System.out.println("member = " + child.getMember());
        child.setMember(5);
        System.out.println("member = " + child.getMember());
    }
}

您获得的输出:

member = 0
member = 5
yqkkidmi

yqkkidmi2#

不,你不能修改超类中的私有变量,除非你使用反射。
访问它们的唯一方法是getter和setter。

nvbavucw

nvbavucw3#

无法从另一个类更改private。您可以在同一个类中更改

class Parent {

private value;

public class Method {
System.out.println(value++);
}
           
}

相关问题