`
西口西
  • 浏览: 9463 次
社区版块
存档分类
最新评论

接口,抽象类与事件

    博客分类:
  • java
阅读更多

一、接口

接口是一类特殊的父类,它没有属性、构造方法和普通方法,而是由常量和抽象方法构成的。

常量:常量名的单词全用大写。

抽象方法:只有方法的签名而没有方法体,即没有大括号。

常量和抽象方法的访问修饰符都是默认的public,因为接口只有这一个访问修饰符,因此编写时可以省去public,定义抽象方法时也可以省去abstract,由接口默认提供。

接口的关键字是interface:

public interface MouseListener extends EventListener {

    /**
     * Invoked when the mouse button has been clicked (pressed
     * and released) on a component.
     */
    public void mouseClicked(MouseEvent e);

    /**
     * Invoked when a mouse button has been pressed on a component.
     */
    public void mousePressed(MouseEvent e);

    /**
     * Invoked when a mouse button has been released on a component.
     */
    public void mouseReleased(MouseEvent e);

    /**
     * Invoked when the mouse enters a component.
     */
    public void mouseEntered(MouseEvent e);

    /**
     * Invoked when the mouse exits a component.
     */
    public void mouseExited(MouseEvent e);
}

由于接口没有构造方法,因此不能用接口直接来初始化对象,而且由于接口没有方法体,因此创建对象也没有意义。因此想要使用接口,必须创建新的类来实现接口。

实现接口的方法:实现接口是继承父类的一种特殊形式,需要用到的关键词不是extends而是implements。

public class Mlistener implements MouseListener{
}

 接口只能继承接口 ,继承用extends关键字。
 类只能继承一个父类(单继承),而接口可以一次继承多个,用逗号分开即可(多继承)。

一个类可以同时继承类和实现接口,但继承类必须写在实现接口之前:

public class QQ extends JFrame implements ActionListener{  
}

  否则会出现语法错误。

 而且实现接口的类一定要重写接口(包括间接继承的接口)中的所有抽象方法,方法的大括号中不需要都有内容,有大括号即可(一定去掉方法签名中的abstract)。

 
二、抽象类

  关键字 abstract class,它同时拥有接口和类的特点,即它可以有常量和抽象方法又可以有属性、构造方法和普通方法,因此它可以同时继承类、抽象类和接口,而且对接口中的类可以选择不重写。
  抽象类的访问修饰符也有四类,注意抽象类是不能初始化对象的(因为可能存在抽象方法)。
 
三、事件
 事件源  所有的图形界面所有的组件都可以做为事件源
   可以根据发生的动作来确定事件源对象

 事件监听器方法,用来监听事件源的动作并捕获事件源的动作,从而在事件源的动作发生时调用一定的方法

常见的方法有:addActionListener、addMouseListener等

 事件接口或事件抽象类   不能创建对象,要定义一个新的类来实现接口或抽象类

 常见的监听器  动作监听器ActionListener、鼠标监听器MouseListener、鼠标动作监听器MouseMotionLtistener、按键动作监听器KeyListener

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics