实现什么都不做的接口方法

Adr*_*ian 4 java design-patterns adapter

可以说我有这个界面和类:

interface IListener
{
   void f();
   void g();
   void h();
}

class Adapter implements IListener
{
   void f() {}
   void g() {}
   void h() {}
}
Run Code Online (Sandbox Code Playgroud)

如果它们什么也不做,那么实现thoose接口方法有什么意义呢?

问题来自设计模式Java工作簿.

Viv*_*sse 10

目的是如果您不需要所有方法,可以使界面的实现更容易.您可以扩展适配器并仅覆盖您想要的方法.这些类仅为方便起见而存在.

例如,在Swing中,实现a时MouseListener,您可能不希望处理所有鼠标事件.在这种情况下,您可以扩展MouseAdapter和处理您感兴趣的事件.

请注意,Adapter该类通常也实现了该接口.