Краткий ответ: , потому что это так в C ++ . Java взяла большую часть своего синтаксиса из C ++ - на мой взгляд, это мудрое решение, поскольку оно действительно помогало рисовать программистов, когда оно еще было новым.
Теперь, если ваш вопрос заключается в том, зачем вообще нужно ключевое слово - то есть, почему компилятор не может просто определить, где объявлены классы - возможно, это возможно, но использование ключевого слова имеет преимущества
- Быть компилируемым.
- Быть более читабельным для людей, чем неявные декларации.
- Как я уже говорил выше - похоже на синтаксис C ++.
EDIT: одна вещь - некоторые вещи просто не могут быть выведены компилятором в синтаксисе Java - например, единственное отличие между пустым классом и пустым интерфейсом ( оба являются легальными в Java) - это ключевое слово class
/ interface
.