Tại sao Thread
lớp được triển khai như một lớp thông thường chứ không phải là một lớp trừu tượng với run()
phương thức là trừu tượng.
Nó sẽ có thể giới thiệu bất kỳ vấn đề? Hay nó có ích gì khi theo cách này?
Ngoài ra, Thread.start()
phương thức được cho là một phương thức rất cụ thể mà chức năng của nó không thể được thực hiện bởi bất kỳ lớp nào khác (Nếu tôi không nhầm). Và do đó tôi đoán final
từ khóa sẽ phù hợp với phương pháp này hơn bất kỳ phương pháp nào khác.
Nhưng tôi có thể ghi đè phương pháp này và sử dụng nó theo ý muốn,
public class Test extends Thread {
public static void main (String... args) {
Thread test = new Test();
test.start();
}
@Override
public void run() {
System.out.println("New thread started...");
}
@Override
public void start() {
System.out.println("Did anyone tell you I will spawn a new thread??");
}
}
Nó rõ ràng chỉ được in,
Có ai nói với bạn rằng tôi sẽ sinh ra một chủ đề mới không ??
Có công dụng nào trong việc ghi đè ngoài việc khiến kỹ sư thay thế bạn bối rối không?
Nếu không, tại sao phương thức không được khai báo cuối cùng trong lớp Thread?