Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中调用的这种方法重写类型是什么?_Java_Overriding_Anonymous Inner Class - Fatal编程技术网

Java中调用的这种方法重写类型是什么?

Java中调用的这种方法重写类型是什么?,java,overriding,anonymous-inner-class,Java,Overriding,Anonymous Inner Class,我对Java比较陌生,我正在使用一个新的API。我遇到了这个方法重写,我不确定它叫什么: public void exampleMethod() { Button loginButton = new Button("login"){ public void onSubmit(){ //submit code here } }; } 据我所知,这是重写Button类的onSubmit方法。我以前从未遇到过这种类型的重写。它有具体的名

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

public void exampleMethod() {
    Button loginButton = new Button("login"){
       public void onSubmit(){
          //submit code here
       }
    };
}
据我所知,这是重写Button类的onSubmit方法。我以前从未遇到过这种类型的重写。它有具体的名字吗?我想多读一些,但找不到。到目前为止,我所有的搜索结果都是通过创建一个新类来实现常规方法重写,这是我已经熟悉的

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

谢谢。

这是个好主意。基本上,它创建一个从指定类派生的新类(在本例中为
按钮
,尽管您可以使用相同的技术实现接口)并重写适当的方法。它也可以包含其他方法,但它们只能在该类中可用


该类可以访问同一方法中的最终局部变量,如果您正在编写实例方法,它也会隐式引用
(因此您可以调用“main”类中的其他方法)。

这是一个匿名内部类

更多信息:

这是一个问题

在上面的示例中,我们创建Button的子类,并按照代码的其余部分提供重写方法的实现,而不是创建扩展Button的私有类

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


它可以是一个非常方便的快捷方式,特别是对于
侦听器
类,但是如果您太过忘乎所以,并且行内方法定义太长,它会使您的代码很难理解。

谢谢。我搜索了内部方法,但没有将其视为内部类,更不用说匿名内部类了。我要去读关于他们的书!好问题。。。这是一种很难在参考资料中查找的东西+1谢天谢地,当我试图问同样的问题时,它为我找到了你的问题。