日期:2014-05-20  浏览次数:20793 次

关于多线程的一个问题
Java code
class MyThread implements Runnable{    // 实现Runnable接口,作为线程的实现类
    private String name ;        // 表示线程的名称
    public MyThread(String name){
        this.name = name ;        // 通过构造方法配置name属性
    }
    public void run(){    // 覆写run()方法,作为线程 的操作主体
        for(int i=0;i<10;i++){
            System.out.println(name + "运行,i = " + i) ;
        }
    }
};
public class RunnableDemo01{
    public static void main(String args[]){
        MyThread mt1 = new MyThread("线程A ") ;     // 实例化对象
        MyThread mt2 = new MyThread("线程B ") ;     // 实例化对象
        Thread t1 = new Thread(mt1) ;        // 实例化Thread类对象
        Thread t2 = new Thread(mt2) ;        // 实例化Thread类对象
        t1.start() ;    // 启动多线程
        t2.start() ;    // 启动多线程
    }
};

在这“Thread t1 = new Thread(mt1) ;”调用了Thread的一个构造方法“Thread(Runnable target) ”,构造方法是用之前不用先声明么?比如MyThread构造方法已经在类中声明过了,是不是java自带的构造方法不用声明就可以直接是用?

------解决方案--------------------
这个和多态有关系么,这里又不涉及继承,明确告诉楼主:调用构造方法是不用什么声明的。你说的“MyThread构造方法已经在类中声明过了”是不是指你在MyThread类中定义过了?而Thread 类的构造方法也在Thread类中定义过了,只不过Thread类是预先编写好的类库,如你所说:“java自带的构造方法”。