是否可以从java中的继承类更改受保护的变量?

时间:2011-03-30 08:45:31

标签: java class inheritance methods main

前:

class A {
    protected Integer x;

    class A () {
       x = new Integer(0);
    }

    public setX(Integer m) {
       x = m;
    }
}

class B extends A {

    public class B () {
       super();
    }

    public static void main () {
       B b = new B();
       b.setX(69);
       System.out.println("Value of x is: " + b.x);  // expect to be 69. Is it correct?      
    }
}

3 个答案:

答案 0 :(得分:3)

是的,这是protected对于:)

答案 1 :(得分:2)

受保护的访问意味着可以在类层次结构中的同一个包中看到该成员(或方法)。 所以是的,你的代码确实有预期的结果。

答案 2 :(得分:0)

将受保护变量用于继承并不是一种好习惯。

正确的方法(不违反封装)是使用私有加法器来处理变量和公共(或受保护的)getter和setter。