Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 实现什么都不做的接口方法_Java_Design Patterns_Adapter - Fatal编程技术网

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:-)道歉,如果你公开了一个接口,你应该期望人们直接实现它。至少他们中的一些人会这样做。如果要确保不破坏任何实现,请不要创建接口。只有空方法。请注意,适配器类通常也实现接口。。。。。如果不总是。