[/color]大家知道,类继承类为单继承,即一个类仅可以有一个父类。但是,有时为了实现多继承(实现代码的重用性),则需要用到接口,即类可继承多个接口,拥有多个父接口。接口一系列方法的声明,是一些方法特征的集合,只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。而类继承接口后必须将接口中定义的所有方法都实现,否则将报错,即接口强制编程者将其中所有抽象方法全部实现。
简而言之,接口仅负责将方法的特征封装,供类继承后实现,继承该接口的类除共有该接口中特征外不需有其他共通。即接口相当于一工具箱,实现工具箱中工具的功能仍靠作为使用者的类
定义接口的关键字为[color=darkred]interface,属性可为
public,
静态的和final(即不可被继承不能被重写);而接口同时也可继承多个接口,格式为
public interface 接口名
extends 接口,... {};接口中可定义常量,且常量名需全部大写,格式为
public static final 数据类型 常量名 = 值
或 static final 数据类型 常量名 = 值
或 数据类型 常量名 = 值;
而接口中的方法只能是抽象的
[abstract]和公开的[public],其中定义抽象方法格式为
public abstract 返回值数据类型 方法名(数据类型 形参,...);
或 abstract 返回值数据类型 方法名(数据类型 形参,...);
或 返回值数据类型 方法名(数据类型 形参,...);
注意,抽象方法不可以有方法体{},即没有实际代码实现,并且不可有构造方法,不能实例化对象,相当于一个待填充的空壳子。
现在,定义一个类,来将之前定义的接口实现,赋予接口中方法具体的实现,实现关键字为implements
public
class 类名 extends 父类名 implements 接口,... {}
注意,若实现接口的同时要继承类的话,要先继承类再实现接口
接口是一种特殊的类,介绍一种另一种特殊的类抽象类,它介于类与抽象类之间,可以定义类中所有的属性和方法,也可以定义接口中的常量和抽象方法,但是它和接口一样不能实例化对象,其定义格式为public abstract class 抽象类名 {}
在做出
Swing图形界面后,for example,界面上的JButton类按钮,此时点击是不能实现任何效果的,需要添加事件才能够实现预期的功用。例如,点击后弹出另外一个窗口,可知,为了实现点击后的效果,需要先捕获点击这个动作,就需要添加一个事件
监听器,顾名思义就是监听是否在该Swing组件(发生动作的Swing组件作为事件源)发生了动作,判断需不需要引发后续代码。常用事件监听器有
addActionListener(ActionListener l); 动作监听器方法,捕获事件源(输入框)的回车和事件源(按钮)上的鼠标点击
addMouseListener(MouseListener l); 鼠标监听器方法,捕获事件源上鼠标按下,释放,单击,进入和离开。
addMouseMotionListener(MouseMotionListener l); 鼠标移动监听器方法,捕获事件源上鼠标按下拖动或者移动鼠标。
addKeyListener(KeyListener l); 键盘监听器方法,捕获事件源上是否有按键按下,松开。
这些监听器均为接口,由上可知,须定义一个
事件处理类来实现对应监听器接口中所有的方法,这个时候才是真正赋予在Swing组件操作的
意义