避免覆盖Java中的所有抽象方法

时间:2013-01-06 18:01:30

标签: java override abstract-class

我想知道是否有办法避免实现的接口或其他类的不必要的方法 假设我有简单的类实现MouseListener,实际上我只需要一个方法mousePressed( MouseEvent e)来覆盖。但是,在这种情况下,我还必须覆盖接口上的所有其他方法,但保持它们为空:

public void mouseExited( MouseEvent e) {}
public void mouseClicked( MouseEvent e) {}
public void mouseReleased( MouseEvent e) {}
public void mouseEntered( MouseEvent e) {}

是否有任何棘手的解决方案只覆盖我真正需要的方法,即使其他人在接口/超类中是抽象的并仍然保持我的类是非抽象的?

2 个答案:

答案 0 :(得分:8)

扩展MouseAdapter。它通过对每个方法都不做任何事来实现MouseListener。所以你可以覆盖你想要的那个。

答案 1 :(得分:1)

JB Nizet的解决方案很好,但顺便说一下它是一个什么问题?使用像Eclipse这样的现代IDE,您只需单击一下即可添加所有方法(源>覆盖/实现方法)。 如果你使用适配器它是实用的,但你不能扩展另一个类而不是适配器。