我尝试使用实现Runnable接口的类的构造函数。但是我很惊讶地发现它从未被调用过。调用了run()方法,但是从未调用过构造函数。我已经编写了一个简单的示例代码来显示这种现象。谁能解释为什么会这样?

public class MyRunner implements Runnable {

    public void MyRunner() {
        System.out.print("Hi I am in the constructor of MyRunner");
    }

    @Override
    public void run() {
        System.out.println("I am in the Run method of MyRunner");
    }

    public static void main(String[] args){
        System.out.println("The main thread has started");
        Thread t = new Thread(new MyRunner());
        t.start();
    }
}

最佳答案

public void MyRunner()更改为public MyRunner()(无返回类型)。 public void MyRunner()不是构造函数,它是一种方法。构造函数声明没有返回类型。

08-26 17:08