我正在处理一些过去的试卷,在这里我不确定输出。我想我不清楚延伸和超级。
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);
}
}
我认为第二个输出是真的,因为它会引用超类,它是一个对象。但是,我不确定第一个输出。它只是一个值和打印错误还是一个对象?
答案 0 :(得分:1)
输出将是:
false
true
因为默认情况下Subclass
aVariable
false
为aVariable = false;
,所以分配Superclass
是不必要的)。详细了解Primitive Data Types default values
在aVariable
中,您使用关键字超级:true
调用超类'方法,将super.aMethod();
初始化为$(document).on('mouseup', 'span.label.select-label:eq(0)', function(){
alert('Maximum '+parseInt($(this).text(), 10));
});
$(document).on('mouseup', 'span.label.select-label:eq(1)', function(){
alert('Minimum '+parseInt($(this).text(), 10));
});
。详细了解Accessing Superclass Members。
查看demo。
答案 1 :(得分:1)
由于它们都属于自己的类块,因此使用相同的名称并不重要。就像现在看起来一样,你将aVariable设置为false,对super的调用不会改变它,除了创建具有相同名称的另一个变量(新引用)并将其设置为true。所以预期的输出是
false
true
答案 2 :(得分:1)
输出将是:
false
true
super.aMethod()
将执行制作SuperClass的aVariable = true
aVariable
将保持false
。
答案 3 :(得分:0)
我进行了科学实验(复制粘贴并运行)并进行打印 假 真
更多信息: