Несколько классов в одном файле. Public

Несколько классов в одном файле. Public

Когда класс или интерфейс объявляется как public, его название должно совпадать с названием java-файла.
Т.о. java-файл может содержать сколько угодно классов/интерфейсов с пакетной зоной видимости и только один public-класс или public-интерфейс, имя которого совпадает с именем этого файла.


// Содержимое файла InterfaceExample.java
package multipleJavaSource;
   // имя интерфейса совпадает с именем файла
    public interface InterfaceExample { 
         //some code
    }
    
    class A {
         //some code
    }
    
    interface II {
         //some code
    }
    
    class  B implements InterfaceExample {
         //some code
    }

А в примере ниже есть и public-класс, и public-интерфейс, что приводит к ошибке компиляции:


// Содержимое файла InterfaceExampleFail.java
package multipleJavaSource;


public class InterfaceExampleFail {
     //some code
}

public interface InterfaceExampleA { // ошибка компиляции
     //some code
}

class InterfaceExampleB {
     //some code
}

interface InterfaceExampleC {
     //some code
}
Основы Java