Все, що ми кодуємо в Java, переходить до класу. Кожен раз, коли ми запускаємо клас JVM інстанціює об'єкт. JVM може створити ряд об'єктів, за визначенням Static означає, що ви маєте однаковий набір копій для всіх об'єктів.
Отже, якщо Java дозволила б вищому класу статичним стати при кожному запуску програми, вона створює Object і продовжує переосмислюватись на одне і те ж Місце пам'яті.
Якщо ви просто замінюєте об'єкт щоразу, коли запускаєте його, у чому сенс його створення?
Тож саме тому Java позбулася статики для класу верхнього рівня.
Можуть бути і більш конкретні причини, але це мало для мене логічний сенс.
static
?