接口内的嵌套类
java编译器允许我在接口内编写一个Class定义。 这有什么具体用途吗?
interface ClassInterface { void returnSomething(); int x = 10; class SomeClass { private int y; private void classDoingSomething() { } } }
请解释 。
您可以使用它将某种类型紧密绑定到接口。 阅读此页面以获取更多信息以及在接口内定义类的示例。
这些用法与嵌套在另一个类中的类相同:它允许将类作用于接口。 你可以想象这样的事情:
public interface Switch { public enum Status { ON, OFF; } void doSwitch(); Status getStatus(); }
它避免了定义名为SwitchStatus
的顶级类(因为Status
可能是一个太通用的名称)。
声明嵌套在接口内的类将是非常糟糕的编程。 接口是概念的抽象,而不是概念的实现。 因此,实现细节应该省略接口
http://onjava.com/onjava/excerpt/HardcoreJava_chap06/index2.html