我们可以修改子类中的私有变量吗?

时间:2018-03-22 17:41:13

标签: java

  

我们可以通过子类 修改私有变量吗?
我们可以通过set和get方法使用它,但是如何在子类中修改它们。

3 个答案:

答案 0 :(得分:0)

您没有通过子类对父类的private成员进行直接访问。您可以在父类中使用protectedpublic访问修饰符指定 getters setters ,并更改或读取该private成员的值通过调用适当的方法 - getter或setter来获取父类。

如何实现这一目标的示例:

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

答案 1 :(得分:0)

不,除非使用反射,否则不能修改超类中的私有变量。

访问它们的唯一方法是getter和setter。

答案 2 :(得分:0)

**没有办法从另一个班级改变私人。 你可以改变同一个班级

**

class Parent {

私人价值;

public class Method { 的System.out.println(值++);

}

}