Чому 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?