Thread
클래스가 추상 클래스가 아닌 일반 클래스로 구현 된 이유는run()
메서드가 추상 인
문제가 생길 수 있습니까? 아니면 이런 식으로 사용합니까?
또한이 Thread.start()
메서드는 다른 클래스에서 기능을 구현할 수없는 매우 구체적인 메서드 여야합니다 (내가 틀리지 않은 경우). 따라서 final
키워드가 다른 방법보다 더 적합 할 것이라고 생각합니다 .
하지만이 방법을 재정의하고 원하는대로 사용할 수 있습니다.
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??");
}
}
분명히 인쇄 만했는데
누군가 내가 새 스레드를 생성 할 것이라고 말했습니까 ??
엔지니어가 당신을 대체하는 것을 혼란스럽게하는 것 외에 재정의에 어떤 용도가 있습니까?
그렇지 않다면 왜 메소드가 Thread 클래스에서 final로 선언되지 않았습니까?