我正在处理一些过去的试卷,但我不确定输出。我想我不清楚extends和super。
public class Superclass{
public boolean aVariable;
public void aMethod(){
aVariable = true;
}
}
class Subclass extends Superclass {
public boolean aVariable;
public void aMethod() {
aVariable = false;
super.aMethod();
System.out.println(aVariable);
System.out.println(super.aVariable);
}
}
我认为第二个输出是正确的,因为它引用父类(super class)并且它是一个对象。但是,我不确定第一个输出。它只是一个值并打印 false 还是它也是一个对象?
最佳答案
输出将是:
false
true
因为在您的子类
中,aVariable
默认为false
(因此赋值aVariable = false;
是不必要的) 。了解更多关于 Primitive Data Types default values .
在Superclass
中,您可以通过使用关键字super调用父类(super class)的方法来将aVariable
初始化为true
: super.aMethod();
。了解更多关于 Accessing Superclass Members .
看看demo .
关于java - 想知道以下 Java 程序的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41485421/