A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© xbs783 中级黑马   /  2016-11-3 11:10  /  1258 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


源代码:
import java.awt.Toolkit;
import java.awt.event.ActionListener;
import java.util.Date;
import javax.swing.*;

public class AnonymousInnerClassTest {

        public static void main(String[] args) {
                // TODO Auto-generated method stub
                TalkingClock clock = new TalkingClock();
                clock.start(10000, true);
               
                //keep program running until user select "ok"
                JOptionPane.showMessageDialog(null, "Quit the program !");
                System.exit(0);
        }
}

class TalkingClock{
        public void start( int interval ,final boolean beep ){
                ActionListener listener = new ActionListener(){
                        public void actionPerformed( Action event ){
                                Date now = new Date();
                                System.out.println("Now time is " + now);
                                if( beep ){
                                        Toolkit.getDefaultToolkit().beep();
                                }
                        }
                };
               
                Timer t = new Timer( interval, listener );
                t.start();
        }
}


关于匿名内部类的学习中遇到的,编译报错信息:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
        The type new ActionListener(){} must implement the inherited abstract method ActionListener.actionPerformed(ActionEvent)

        at TalkingClock.start(AnonymousInnerClassTest.java:24)
        at AnonymousInnerClassTest.main(AnonymousInnerClassTest.java:13)

在网上查了下,也查了资料,没找到错误原因,求大神指教!!!!!

1 个回复

倒序浏览
提示很清楚了,说没有实现继承过来的抽象方法,还告诉你是哪个方法 ActionListener.actionPerformed(ActionEvent),你实现的是public void actionPerformed( Action event )传入的参数不一样不叫重写,叫重载了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马