gpt4 book ai didi

java - 接口(interface)类困惑

转载 作者:行者123 更新时间:2023-12-02 09:39:25 24 4
gpt4 key购买 nike

接口(interface)中的方法不包含实现。那么为什么ActionListener接口(interface)提供了Action的所有功能,而ActionListener方法中的方法没有实现。那么它如何提供方法的功能。如 setOnClickListener 等我很困惑。请帮助我

最佳答案

接口(interface)定义类应提供的功能。例如,Runnable接口(interface)有一种方法,run() ,以及任何实现 Runnable 的类其中应该有一个名为 run() 的方法。这同样适用于 ActionListener .

我对这个界面不太熟悉,但我将使用 JavaFX(一个 Java GUI 库)中的示例。

Button类有一个方法 setOnAction(EventHandler<ActionEvent> handler) ,设置按下该按钮时发生的操作。 EventHandler<ActionEvent>是一个接口(interface),和server的目的类似ActionListener 。它有一种方法: void handle(ActionEvent event);

作为程序员,我的工作是提供一个实现 EventHandler<ActionEvent> 的类,以便按钮知道按下时要调用什么方法。我可以通过以下方式做到这一点:

  • 在单独的 .java 文件中创建新类、实现接口(interface)并覆盖 handle()
  • 创建一个匿名内部类,并重写其中的方法。
  • 使用 lambda/方法引用 (Java 8),编译器将其视为匿名内部类

通过要求一个实现 EventHandler<ActionEvent> 的类,按钮知道会有一个 handle(ActionEvent event)可供调用的方法。这就是界面的全部作用。这只是一个特定方法将存在的 promise 。如果您未能遵守此 promise (即您不重写该方法),编译器将失败并且您将无法运行您的代码。

关于java - 接口(interface)类困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57220977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com