class Test extends Thread
{
private String name;
Test(String name)
{
this.name=name;
}
public void run()
{
System.out.println(this.getName());//打印的是Thread-0
}
class Test extends Thread
{
Test(String name)
{
super(name);
}
public void run()
{
System.out.println(this.getName());//打印的是自定义的name
}
为什么用this.name=name;时,打印的线程名称就是默认的
而用super(name);时,打印的就是自定义的呢?
毕老师说,Thread类中已定义好了给线程起名字的方法,可以直接调用,但是Test继承Thread之后
它其中也就有了getName()方法,它的返回值肯定是rerurn this.name,而本类中就有name属性,为什么不返回,却返回默认名呢?
就算调用super(name)方法,它其中应该也是this.name=name,为什么就能打印出自定义的线程名称?
|