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,所以所有方法都像你说的那样工作!再次干杯。