Я вважаю, що для відповідей слід опублікувати кілька калібрувань.
"Ви впевнені, що ніколи не захотіли б це замінити?"
Ні ! Я б не. Це як сказати: "Ви впевнені, що хочете оголосити цю змінну приватною?" Тому що якби я міг оголосити будь-яку змінну, яку я використовую, як загальнодоступну, не побоюючись, що інші розробники можуть зіпсувати мою логіку проектування, кодування буде легким. Однією з найважливіших цілей OOPS-концепцій Scope, абстракції, поліморфізму, обробки помилок тощо є інформування інших розробників про дизайн та наміри, що лежать у основі вашого коду. використовувати super.start (). @Codebender написав метод запуску для потоку без використання super.start (), і компілятор ніколи не скаржився. Отже, він вільний зламати весь механізм потокової роботи, а компілятор, мабуть, просто дозволить йому пройти? Метод запуску потоку гарантує, що метод запуску викликається і виконується в потрібний час! Це має вирішальне значення для самої концепції Threading. Я був би з радістю виправлений, якщо б щось тут пропустив. 2.
Оскільки рекомендованим способом створення стартового потоку є не підклас Thread.
Добре, якщо проектувальнику дозволено codebender підкласити Thread і зіпсувати метод запуску, За цією логікою, це сам дизайн, який стріляє в стопу. За іншою заявою (з якою я повністю погоджуюсь), Runnable - рекомендований спосіб. Тоді чому ми взагалі дозволяємо класу Thread створювати екземпляри потоку взагалі без обмежень? Далі йде:
Ви не можете замінити реалізацію start () власною реалізацією,
Це насправді підтримує твердження codebender, що метод запуску повинен бути остаточним, коли ви це говорите .. ^
Той єдиний момент, який є дійсним, вже згадується як допоміжна примітка, але це - фактичною відповіддю на це питання
"Зворотна сумісність".
Насправді вдосконалення відбувалися навіть до JDK 5.0, коли вони включали багато основних доповнень та роз'яснень до моделі паралельності Java. Ми хочемо, щоб зворотна сумісність підтримувалася на всьому шляху, і тому клас Thread залишається точно таким, як був раніше, навіть незважаючи на те, що на сьогоднішній день рекомендованим способом є Runnable interface.
Знову ж таки, я був би більш ніж радий, щоб мене виправили, якщо я щось пропустив.