Причина, по которой метод main
имеет void
в качестве возвращаемого типа, состоит в том, что когда main
завершается, это не обязательно означает, что вся программа завершилась. Если main
порождает новые потоки, то эти потоки могут поддерживать выполнение программы. Тип возврата main
не имеет особого смысла на этом этапе.
Например, это очень распространено в приложениях Swing, где метод main
обычно запускает графический интерфейс в потоке Swing, а затем main
завершается ... но программа все еще выполняется.