家伙能否请您给我解释一下怎么来的这个例子的输出是:解释这个继承Java程序的输出?
Exam1
This is Tennis Shoes
derived class
This is a white Tennis Shoes is created
如果你能到我,我们创造了White Tennis Shoes
对象发生了什么之后到底发生了什么解释。 请大家不要告诉我做你的功课,或者我只是准备考试,而这是一个老问题。
的代码如下:
class Shoes{
public Shoes(){
this("you have created a shoes Object");
System.out.println("This is the base class");
}
public Shoes(String s){
System.out.println(s);
}
}
class TennisShoes extends Shoes{
public TennisShoes(){
this("This is Tennis Shoes");
System.out.println("derived class");
}
public TennisShoes(String s){
super("Exam1");
System.out.println(s);
}
}
class WhiteTennisShoes extends TennisShoes{
public WhiteTennisShoes(String s){
System.out.println(s);
}
}
class ConstructorPrintingTester{
public static void main(String[] args){
WhiteTennisShoes shoesObj;
shoesObj = new WhiteTennisShoes("This is a white Tennis Shoes is created");
}
}
无论作业与否,为什么不先解释发生了什么? –
我不知道当你调用this(“xxxx”)时,它会调用当前构造函数中的另一个构造函数,这就是为什么它在思考15分钟后阻止了我!感谢phihag现在非常清楚,我喜欢他列举他们的方式,这是非常有用的。 –
我也完全忘记了当你调用super()构造函数时,Java将为我创建一个。所以这就是为什么我真的无法从输出中理解一件事。 –