java - 在 Java 中,这种类型的方法覆盖是什么?

标签 java overriding anonymous-inner-class

我对 Java 比较陌生,我正在使用新的 API。我遇到了这个方法覆盖,我不确定这叫什么:

public void exampleMethod() {
    Button loginButton = new Button("login"){
       public void onSubmit(){
          //submit code here
       }
    };
}

据我了解,这是覆盖 Button 类的 onSubmit 方法。我以前从未遇到过这种类型的压倒一切。它有具体的名称吗?我想阅读更多关于它的信息,但我找不到它。到目前为止,我的所有搜索都通过创建一个新类来覆盖常规方法,这是我已经熟悉的。

如果有人能指出我正确的方向,我将不胜感激。

谢谢。

最佳答案

那是 anonymous inner class .

在上面的示例中,我们没有创建一个扩展 Button私有(private)类,而是创建了一个 Button 的子类,并提供了与其余部分一致的重写方法的实现编码。

因为这个新类是动态创建的,所以它没有名字,因此是匿名的。因为它是在另一个类中定义的,所以它是一个匿名的 inner 类。

它可能是一个非常方便的快捷方式,尤其是对于 Listener 类,但如果您忘乎所以并且行内方法定义太长,它会使您的代码难以遵循。

关于java - 在 Java 中,这种类型的方法覆盖是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1542410/

相关文章:

vb.net - 覆盖 datagridview 上的 keydown Enter

java - Java使用内部类的方法引用

java - 解决静态方法歧义

java - 使用 Java,我需要将一个字符串拆分成两个大写字母之间的 arrayList

java - 为泛型的实现类的子类变量提供扩展功能

python - 如何为实例更改 dict() 的行为

c++ - C++ 中的变量覆盖

java - 匿名类中的最终变量

java - 匿名内部类中的 NullPointerException

java - 使用 jdk 8 的默认 jaxws-ri 实现禁用 SOAP 客户端的 SOAP 验证