前:
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?
}
}
答案 0 :(得分:3)
是的,这是protected
对于:)
答案 1 :(得分:2)
受保护的访问意味着可以在类层次结构中的同一个包和中看到该成员(或方法)。 所以是的,你的代码确实有预期的结果。
答案 2 :(得分:0)
将受保护变量用于继承并不是一种好习惯。
正确的方法(不违反封装)是使用私有加法器来处理变量和公共(或受保护的)getter和setter。