本帖最后由 杜佳瑞 于 2012-7-29 15:36 编辑
在毕老师视频中,学到多线程时有这么一个问题,其实这个问题早在异常那会就有了,现在还是没有弄懂,问题如下
class Test extends Thread
{
private String name;
Test(String name)
{
super(name);
//this.name=name; } 一个是用子类构造函数赋值,一个是调用父类构造函数赋值,我认为应该效果一样的,可是后面调用getName()函数时,产生的结果就是不一样了。用super父类构造函数能调用getName,为什么用子类this.name=name就不能呢,不是子类也继承了这个方法吗?还有前面学习异常的时候有一个负数异常那会我就没有弄懂,super就会调用getMessage,而在子类构造函数里面直接赋值后,后期就不会调用getMessage,这是为啥呢?求解!
public void run()
{
for(int x=0;x<60;x++)
{
System.out.println(this.getName()+" run..."+x);
}
}
}
class ThreadTest
{
public static void main(String[] args)
{
Test t1=new Test("one---");
Test t2=new Test("two+++");
t1.start();
t2.start();
for(int x=0;x<60;x++)
{
System.out.println("main......"+x);
}
}
}
|