我一直在想接口出现的背景。假设有一个人(People)类,由于人能完成的事情太多,它的do()方法因为太过于抽象而不能具体去决定该如何描述,于是,在这种情况下,就出现了接口————其关键字为interface,而且这个特殊的类中的方法时没有方法体,即这个类中的方法都没有具体的实现;并且,这个“特殊的类”中的属性都是常量,在定义属性的时候要加上public final static关键字,代表该属性是“静态的”、“最终的”,不能被修改。
刚刚有说到,接口是一种特殊的类,特殊之处又体现在哪儿呢?除了定义的关键字、其中的属性和方法,特殊在于,继承一个接口称为“实现”,而不再是”继承“,关键字从extends变成了implements,并且子类必须实现父接口中的方法,子类继承一个父接口时,却允许只要重写部分方法或者不需要重写。另外,类的继承是单根继承,而接口的继承却是多重继承,即一个类能够实现多个接口。
再说到事件。事件的处理流程由三个部分组成:事件源(焦点所在的组件或者说接收事件的对象)、事件对象(按键输入还是鼠标单击事件)、事件处理器对象(实现了EventListener事件监听器接口的子类创建的对象)。事件的具体处理过程是这样的:首先,在一个按钮对象Button上点击鼠标,这个按钮上已经添加了一个事件监听器类对象,同时事件对象(ActionEvent类型的)会捕捉到所有的按键信息并通知事件监听器接口,那么事件监听器类中重写了事件监听器接口中的ActionPerformed()方法,在其中对按键事件进行处理。
大概的总结就到了这儿。实践是检验真理的唯一标准,还是去写几行代码检测一下接口和事件的响应这两个知识点才是最靠谱地~~~
刚刚有说到,接口是一种特殊的类,特殊之处又体现在哪儿呢?除了定义的关键字、其中的属性和方法,特殊在于,继承一个接口称为“实现”,而不再是”继承“,关键字从extends变成了implements,并且子类必须实现父接口中的方法,子类继承一个父接口时,却允许只要重写部分方法或者不需要重写。另外,类的继承是单根继承,而接口的继承却是多重继承,即一个类能够实现多个接口。
再说到事件。事件的处理流程由三个部分组成:事件源(焦点所在的组件或者说接收事件的对象)、事件对象(按键输入还是鼠标单击事件)、事件处理器对象(实现了EventListener事件监听器接口的子类创建的对象)。事件的具体处理过程是这样的:首先,在一个按钮对象Button上点击鼠标,这个按钮上已经添加了一个事件监听器类对象,同时事件对象(ActionEvent类型的)会捕捉到所有的按键信息并通知事件监听器接口,那么事件监听器类中重写了事件监听器接口中的ActionPerformed()方法,在其中对按键事件进行处理。
大概的总结就到了这儿。实践是检验真理的唯一标准,还是去写几行代码检测一下接口和事件的响应这两个知识点才是最靠谱地~~~