我对Java有这样的疑问:当人们编写事件监听器时,他们实现了一个接口,他们在接口中定义了一个特定的函数来实现特定的任务。我怀疑的是,我们可以使用适当的名称来定义函数,而不是实现接口。
此外,接口如何帮助实现事件监听器?
答案 0 :(得分:0)
因为许多不同的类想要监听同一个事件而Java不允许多重继承。
答案 1 :(得分:0)
Listener接口为您提供了很多实现自由。
这样您就不必在特定类中实现特定功能。虽然实现接口看起来是相同的,但事实并非如此。侦听器的功能仍然只是单个函数,但该函数通常在轻量级对象中。但是,如果需要,您可以在侦听器中实现许多程序机制。
此外,您可以在运行时更改侦听器。您无法更改覆盖功能。
在这里使用composition (over inheritance)有很多充分的理由。
如果您真的想了解这一点,我建议您查看“Heads first: Design Patterns”。亚马逊的“look inside”功能包含完整的第1章,它大大解释了这种模式。