Открытый интерфейс Java и открытый класс в том же файле
В одном файле .Java можно ли иметь открытый интерфейс и открытый класс (который реализует интерфейс).
Я новичок в Java-кодировании, и в большинстве мест в сети написано, что .java файл не может содержать более 2 открытых классов. Я хочу знать, верно ли это для интерфейса и класса.
Ответы
Ответ 1
Нет, это невозможно. В файле .java
может быть не более одного общедоступного типа верхнего уровня. JLS 7.6. В объявлениях верхнего уровня типов указано следующее:
[& hellip;] должно быть не более одного [общедоступного уровня] для единицы компиляции.
Однако вы можете иметь класс, защищенный пакетом, в том же файле. Это компилируется отлично (если вы поместите его в файл с именем Test.java
:
public interface Test {
// ...
}
class TestClass implements Test {
// ...
}
Ответ 2
Вы можете иметь столько публичных классов, сколько хотите, в одном файле, если вы используете вложенные классы. В вашем примере:
public interface I {
public class C implements I {
...
}
public class D implements I {
...
}
...
}
Ответ 3
public interface A
{
public void helloWorld();
public static class B implements A{
@Override
public void helloWorld() {
System.out.print("Hello World");
}
}
}
Ответ 4
Правило Java состоит в том, что в исходном файле может отображаться только один открытый класс или интерфейс, а имя должно соответствовать файлу (т.е. Test.java → тест открытого класса или тестовый интерфейс общего интерфейса, но не оба).
Ответ 5
Также необходимо понимать интерфейс, управляемый программированием в качестве следующего шага при понимании интерфейса. Это говорит о том, что является фактическим использованием интерфейса. Какую роль он играет в Java (или любом другом языке).