Java 遗传模拟考试

Java 遗传模拟考试,java,inheritance,Java,Inheritance,我有以下代码: class A { protected int x; public int getX() { return x; } } class B extends A { private int answer; public void someMethod() { answer = x; answer = this.x; answer = this.getX(); answer

我有以下代码:

class A {
    protected int x;

    public int getX() {
        return x;
    }
}

class B extends A {

    private int answer;

    public void someMethod() {
      answer = x;
      answer = this.x;
      answer = this.getX();
      answer = super.x;
      answer = super.getX();
    } 
}
someMethod
中的哪些赋值语句有效

我认为这两条“超级”线是正确的

someMethod
中的哪些赋值语句有效

都是

x
this.x
super.x
都指向
类A
中的
受保护的int x
,子类
B
可见
this.getX()
super.getX()
都在
class A
中调用
public int getX()
,子类
B
可见


answer
x
getX()
的返回值都是
int
类型,因此作业是有效的。

任何考试的范围都是测试你对该主题的知识。问一个“紧急”或“最后一分钟”的问题会玷污这个范围。另外,由于许多原因,你的问题不适合这样做。看,我刚才做了,但我想我把事情搞砸了。在中具有上述选项的每个方法仅返回0。我想这是最主要的事情了?我知道这是一个令人震惊的科科人,我道歉,只是抓住了这里的救命稻草!总是0?这是非常奇怪的,因为您从未将值设置为
x
,所以绝对不可能,
x
有其默认值……我想我已经完全搞乱了我刚刚创建的测试类!谢谢:)我自己刚刚在一个不可靠的编译器上尝试过,它为我的所有方法返回了0,所以所有方法都像你说的那样工作!再次干杯。