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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

WindowListener既不是抽象类。里面的方法也不是抽象的,为什么不能直接在addListener(new WindowListener)n呢??郁闷之极?毕老师再讲课的时候说他的方法是抽象的,很明显有问题啊

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 神马都是浮云

查看全部评分

5 个回复

倒序浏览
同学你好。
接口 WindowListener
在包awt.event 中。

回复 使用道具 举报

WindowListener属于接口。
接口的初期理解,可以认为是一个特殊的抽象类。当抽象类中的方法都是抽象的,那么该类可以通过接口形式表示。
反过来说就是:接口是抽象类,而且内部的方法全部是抽象的。
API对WindowsListener的解释是:用于接收窗口事件的侦听器接口。旨在处理窗口事件的类要么实现此接口(及其包含的所有方法),要么扩展抽象类 WindowAdapter(仅重写所需的方法)。
咱们使用WindowsListener时必须实现此接口,包括其内部的7个方法全部都要实现,而WindowAdapter已经实现了所有的方法,其存在的目的是方便创建侦听器对象。扩展此类可创建 WindowEvent 侦听器并为所需事件重写该方法。(如果要实现 WindowListener 接口,则必须定义该接口内的所有方法。此抽象类将所有方法都定义为 null,所以只需针对关心的事件定义方法。)也就是说调用WindowAdapter内部的方法时,可以定义方法。这样就比较方便。比如:
  1. private void myEvent()
  2.         {
  3.                 f.addWindowListener(new WindowAdapter()
  4.                 {
  5.                         public void windowClosing(WindowEvent e)
  6.                         {
  7.                                 System.exit(0);
  8.                         }
  9.                 });
  10. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
这个郁闷的原因是你还没有真正理解接口的概念吧, WindowListener就是java.awt.event中
接口,下面再把接口的概念给你叙述一遍:
   Java中的接口是一些方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的功能,但是用到接口的类必须继承接口,并且去具体的实现其中的方法。例子:
//定义一个接口Demo, 这个接口只定义两个方法,
interface Demo {
        void close();

        void opean();

}

//Mydemo继承接口并实现具体的两个方法
public class Mydemo implements Demo {

        public void close() {

                System.out.println("关闭");

        }

        public void opean() {
                System.out.println("打开");
        }

}

如果你理解了接口,就是你看错了把
WindowListener当作不是接口,但是实际上WindowListener是java.awt.event中接口的,不知道我说的你理解没有

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
什么叫接口,就是里面的方法全是抽象,不能实例化。
类WindowAdapter就是把接口WindowListener里的方法全重写成空函数了,所以可以实例化。
这样你只需要用到监听器里1~2个方法时就用Adapter,而不使用需要重写7个方法的Listener。

我发现我言简意赅的回答总拿不到技术分{:soso_e167:}。

评分

参与人数 2技术分 +1 黑马币 +3 收起 理由
田磊阳 + 1
简★零度 + 3

查看全部评分

回复 使用道具 举报
下次问题解决了就把类型改成提问结束!谢谢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马