我似乎无法理解两个接口之间的区别。为什么不能像MouseListener那样实现MouseAdapter,而只能对其进行扩展?我是Java的新手。

考虑到我们要执行可以通过这两个接口之一完成的操作。

另外,什么时候使用它,什么时候使用是明智的呢?

最佳答案

我似乎无法理解两个接口之间的区别。为什么不能像MouseListener那样实现MouseAdapter,而只能对其进行扩展


MouseAdapter实现MouseListener

鼠标适配器:


用于接收鼠标事件的抽象适配器类。此类中的方法为空。此类的存在是为了方便创建侦听器对象。
扩展此类以创建MouseEvent(包括拖动和运动事件)或/和MouseWheelEvent侦听器,并覆盖感兴趣事件的方法


在没有MouseAdapter的情况下,如果实现MouseListener,则必须为所有这些接口方法提供实现。

mouseClicked(MouseEvent e)
mouseDragged(MouseEvent e)
mouseEntered(MouseEvent e)
mouseExited(MouseEvent e)
mouseMoved(MouseEvent e)
mousePressed(MouseEvent e)
mouseReleased(MouseEvent e)
mouseWheelMoved(MouseWheelEvent e)



什么时候使用它,什么时候使用?


如果要实现上述8种方法,请实现MouseListener。如果只想为这8种方法中的某些方法提供实现,请使用MouseAdapter并仅覆盖您感兴趣的那些方法。

例如如果仅对实现一个事件(或几个事件)(如mouseClicked(MouseEvent e)事件)感兴趣,最好使用MouseAdapter。如果在这种情况下实现MouseListener接口,则必须为其他将要实现的方法提供空白实现。

10-07 22:47