Java 实现什么都不做的接口方法
假设我有这个接口和类:Java 实现什么都不做的接口方法,java,design-patterns,adapter,Java,Design Patterns,Adapter,假设我有这个接口和类: interface IListener { void f(); void g(); void h(); } class Adapter implements IListener { void f() {} void g() {} void h() {} } 如果这些接口方法什么都不做,那么实现它们又有什么意义呢 问题来自。如果您不需要所有的方法,那么目标是使接口的实现更容易。您可以扩展适配器并仅覆盖您想要覆盖的方法。这些类的存在只是
interface IListener
{
void f();
void g();
void h();
}
class Adapter implements IListener
{
void f() {}
void g() {}
void h() {}
}
如果这些接口方法什么都不做,那么实现它们又有什么意义呢
问题来自。如果您不需要所有的方法,那么目标是使接口的实现更容易。您可以扩展适配器并仅覆盖您想要覆盖的方法。这些类的存在只是为了方便 例如,在Swing中,当实现时,您可能不希望处理所有鼠标事件。在这种情况下,您可以只扩展和处理您感兴趣的事件
请注意,
Adapter
类通常也会实现接口。在您发布的示例中,它是无用的,但是如果您使用Adapter来实现IListener(class Adapter implements IListener
),它会比实例化适配器对象(如new Adapter()
否则,适配器将仍然是一个抽象类,在接口中定义的所有方法都有一个正确的实现之前,它不能实例化,也不能实例化它的子类。空的实现也是正确的实现。我已经做了更正,这是一个打字错误。抱歉。幸好你这么早就修好了,现在你只需要向2:-)道歉,如果你公开了一个接口,你应该期望人们直接实现它。至少他们中的一些人会这样做。如果要确保不破坏任何实现,请不要创建接口。只有空方法。请注意,适配器类通常也实现接口。。。。。如果不总是。