Có, chúng ta có thể ghi đè phương thức start() của lớp Thread trong Java. Chúng ta phải gọi super.start() để tạo luồng mới và gọi phương thức run() trong luồng mới đó. Nếu gọi trực tiếp run() từ trong start() của chúng ta, nó sẽ chạy trong luồng hiện tại như một phương thức bình thường, không phải trong luồng mới.
Ví dụ
public class ThreadTest {
public static void main(String[] args) {
MyThread t = new MyThread();
t.start();
}
}
class MyThread extends Thread {
@Override
public void start() { // ghi đè start()
System.out.println("Overriding a start() method");
super.start();
}
@Override
public void run() {
System.out.println("run() method ");
}
}
Kết quả
Overriding a start() method run() method