JAVA一个问题,知道的帮忙回答下啊,谢谢了!

来源:百度知道 编辑:UC知道 时间:2024/06/16 10:14:36
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{
pubic TT(){
System.out.print("Hi!");
}
public TT(String s){
this();
Sysyem.out.print("Iam"+s);
}
}
这个题目的结果是Hi!I am Tom. How are you ?
为什么啊,知道的帮忙回答下啊,最好解释清楚,我在给你加分,帮下忙吧,多解释下,那个this 和super的用法我不是太清楚,也帮忙解释下吧,谢谢了!
没人给我回答啊,帮忙下啊!

先看流程啊

1--Test t=new Test("Tom.");
走Test带参数

2--super(s);
System.out.print("How are you?");
3--super(S)
走TT继承,带参数
4--参数方法里有this();
走TT的构造方法无参数

this 调用自己的构造方法
super调用父类的构造方法;

你这个程序有错,你弄混淆了,编译不通。super的意思是执行这个类的超类里面的方法(也就是他的父类),this就是用来做本方法里面的参数。
比如
int a;
test(int a)
{
this.a=a;(this.a表示本方法里的a,而不是传进来的a,用this以免混淆)
}