我似乎无法理解两个接口之间的区别。为什么不能像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
接口,则必须为其他将要实现的方法提供空白实现。