为什么监听器在 Java 接口中?

Why are Listeners in Java interfaces?

为什么Java接口中的所有监听器?为什么他们不能表现出 类 的行为?

Java 不允许多重继承,所以所有 classes 都有一个直接的 superclass。如果侦听器是 classes,您将无法同时扩展任何其他 class。但是监听器没有任何字段,它们只提供方法供 subclass 重写,所以它们也可以是接口。这意味着如果需要,您可以自己扩展另一个 class,并且它允许您在一个 class.

中实现多个侦听器

因此,从本质上讲,声明要覆盖的 classes 并且没有字段作为接口而不是抽象 classes 几乎总是更好。使用 Java 8 你甚至可以声明 default 方法,所以这些方法甚至不必是抽象的。