在单个Java文件中,是否可以同时有一个公共接口和一个实现了该接口的公共类?
我是Java编程的新手,网络上大多数地方都写道一个.java文件不能包含超过两个公共类。我想知道这是否也适用于接口和类。
我是Java编程的新手,网络上大多数地方都写道一个.java文件不能包含超过两个公共类。我想知道这是否也适用于接口和类。
.java
文件最多只能有一个顶层public类型。JLS 7.6. 顶层类型声明规定如下:
但你可以在同一文件中拥有一个包访问权限的类。如果将其放入名为[...] 每个编译单元中最多只能有一个[顶层public]类型。
Test.java
的文件中,则会编译成功。public interface Test {
// ...
}
class TestClass implements Test {
// ...
}
public interface I {
public class C implements I {
...
}
public class D implements I {
...
}
...
}
setParam(new Interface.Default());
如果我没有使用内部类,我必须考虑一个聪明的名称,但这样我只需称其为“Default”。 - embossstatic
也是多余的。我只是习惯性地添加它,并且只在我真正打算使用非静态内部类时才使用它们。如果我保留它,可以吗? - embosspublic interface A
{
public void helloWorld();
public static class B implements A{
@Override
public void helloWorld() {
System.out.print("Hello World");
}
}
}
是的,我们可以在同一个Java文件中编写接口和公共类
interface Interfable {
public void interfMethod();
}
公共类 TestLam {
int x = 5;
public void testLamMethod() {
int y = 10;
Interfable i = () -> {
System.out.println(x);
System.out.println(y);
};
i.interfMethod();
}
public static void main(String[] args) {
TestLam t = new TestLam();
t.testLamMethod();
}
}
输出:5
10
// 注意:.java 文件名应与类名相同