Anonymous Inner 类 需要覆盖他们现有的方法吗?

Anonymous Inner Classes need to override their existing methods?

所以我通过

创建了一个匿名的内部Class
    obj.addMouseListener(new MouseListener()

但是因为它给了我一个错误(它希望我实现至少 4 个方法,名称如 mouseReleased、mouseClicked 等。因为我假设 class 没有正确地 extend/implement MouseListener,我偶然发现了另一篇与我的问题无关的SO文章(How can an anonymous class use "extends" or "implements"?) where I understood that anonymous Inner Classes always extend/implement a superclass (right?). So I continued my search for the answer and stumbled upon another SO article (),但我看到线程的所有者写了这些代码行

    @Override public void mouseExited(MouseEvent e) {}
    @Override public void mouseEntered(MouseEvent e) {}
    @Override public void mouseReleased(MouseEvent e) {}
    @Override public void mousePressed(MouseEvent e) {}

这是我一直想念的吗?我已经尝试一次@override 整个 class 但这只是给了我另一个错误。我知道这将如何解决问题,但我觉得它看起来很乱。

基本上归结为2个问题; 我刚才 written/discovered 是真的,这是解决我问题的方法吗 和 如果这是解决方案,还有其他(更清洁的)解决方案吗?

MouseListener 是一个接口 - 它没有任何方法实现,因此如果您要将其用作匿名内部 class 的基础,您需要提供实现为了一切。

如果您只想为 某些 方法提供实现,您应该改为扩展 MouseAdapter - 它提供无操作实现,因此您可以覆盖你想要的那些。