Вы можете сделать это, потому что компилятор Java умный и может смотреть в будущее.
По этой же причине у вас может быть два класса A
и B
в отдельном источнике. файлы, где A
относится к B
, а B
относится к A
, т.е. циклическая зависимость , и она будет компилироваться нормально, если вы компилируете оба одновременно.
Вам даже не нужно называть оба класса при компиляции. Когда компилятор компилирует A
и видит ссылку на B
, он автоматически ищет исходный код для B
и компилирует его в том же задании компиляции. Таким образом, компилятор может смотреть вперед, чтобы узнать, какие типы существуют, прежде чем анализировать объявления членов.