/*
曾经几时没有学过java基础,而我直接是学的swing.
在写到JButton控件的事件时,一直很想弄明白它的事件是怎么被重写的,居然可以把函数写在函数参数里.
如果是c语言还可以理解,毕竟c语言有个强大的指针,可以传递任何的参数,包括函数
下面看一个例子,
*/
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
public class Test {
public static void main(String [] args){
JButton A = new JButton("A");
A.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//实现事件
}
});
}
/*
看起来是慢神奇的,因为看不到JButton里面的实现.
有一次在接触到java接口的时候,我焕然大悟,原来用的时接口
下面看一下我的实现
*/
interface inter{
void show();
}
class out{
public void Addaction(inter e)
{
e.show();
}
}
public class demo2{
public static void main(String[] args) {
out a=new out();
a.Addaction(new inter(){
public void show(){
//事件重写,必须重写,因为该对象是接口
System.out.println("事件被重写");
}
});
}
}
/*
看到这里是不是你也明白了呢.
在java和安卓中都是这样实现的
C++中有所不同,写法不同,思想一样的
*/
java中一直认为神奇的事件重写
最新推荐文章于 2022-08-02 09:36:56 发布