Все классы в Java (транзитивно) расширяются Object
, они не являются внутренними классами внутри него.
static
ничего не будет значить для классов верхнего уровня, и поэтому запрещено.Для внутренних классов static
означает то же самое, что и для других членов (таких как члены данных и методы) - внутренний класс принадлежит внешнему классу, а не определенному его экземпляру.