接口内的嵌套类

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