写出下面程序的运行结果 。
public class Test extends TT
{
public static void main(String args[ ])
{
Test t=new Test("Tom. ");
}
public Test(String s)
{
super(s);
System. out.print("How are you?");
}
public Test( )
{
this("I am Jack.");
}
}
class TT
{
public TT( )
{
System.out.print("Hi!");
}
public TT(String s)
{
this( );
System.out.print("I am"+s);
}
}
【正确答案】Hi!I am Tom. How are you?
【答案解析】 程序的入口从Test的main方法开始,首先创建一个Test对象,此时会调用Test的有参数的构造方法,并将“Tom”传给s。在Test的构造方法中又通过super调用了父类TT的有参数的构造方法TT(String s)。在这个方法中又通过this( )调用了TT的无参数构造方法TT( ),此时打印输出“Hii”,之后接着打印输出“I am Tom.”,此时执行完父类TT的构造方法,重新返回super这个地方,接着向下执行输出“How are you?”