同一文件中的Java公共接口和公共类
在单个.Java文件中,是否可以拥有公共接口和公共类(实现接口)
我是Java编码的新手,它在网上的大多数地方编写,.java文件不能包含超过2个公共类。 我想知道接口和类是否也是如此。
不,这是不可能的。 每个.java
文件最多可以有一个顶级公共类型。 JLS 7.6。 顶级类型声明声明如下:
[…]每个编译单元最多只能有一个[顶级公共]类型。
但是,您可以在同一文件中拥有受包保护的类。 这编译得很好(如果你把它放在一个名为Test.java
的文件中:
public interface Test { // ... } class TestClass implements Test { // ... }
如果使用嵌套类,则可以在一个文件中包含任意数量的公共类。 在你的例子中:
public interface I { public class C implements I { ... } public class D implements I { ... } ... }
public interface A { public void helloWorld(); public static class B implements A{ @Override public void helloWorld() { System.out.print("Hello World"); } } }
Java规则是只有一个公共类或接口可以显示在源文件中,并且名称必须与文件匹配(即Test.java – >公共类测试或公共接口测试,但不能两者都匹配)。
在理解接口的同时,还需要了解接口驱动编程作为下一步。 它告诉界面的实际用途是什么。 它在Java(或任何其他语言)程序中扮演什么角色。