java中接口(interface)
来源:互联网 发布:益购阁网络交易平台 编辑:程序博客网 时间:2024/06/05 07:14
接口是用来实现类之间的多重继承功能的结构。其主要的作用是实现类的多重继承功能(java中一个类只能有一个父类,但可以有多个接口!)
在图形界面程序中使用的ActionListener就是系统定义的一个接口,它代表了监听并处理动作事件的功能,其中包含了一个抽象方法:actionPerformed(ActionEvent e);
具体的说,如果你希望处理动作事件,就必须实现这个接口。
比如下面这段code作用既是在操作text时执行actionPerformed方法,实现控制text。
class TextAct implements ActionListener{public void actionPerformed(ActionEvent e){TextField text;int operand;text=(TextField)(e.getSource());operand=Integer.parseInt(text.getText());if(operand<0|operand>200)text.setText("输入数据越界");}}
java中声明接口的语法如下:
[public] interface 接口名 [extends 父接口名]
{
//常量域声明;
//抽象方法声明;
}
需要注意的是接口的访问控制符只有public一个。
接口中的所有属性都必须是public static final(接口属性也可以没有任何修饰符,其效果完全相同);
implements是一个类实现一个接口用的关键字,他是用来实现接口中定义的抽象方法。比如:people是一个接口,他里面有say这个方法。public interface people(){ public say();}但是接口没有方法体。只能通过一个具体的类去实现其中的方法体。比如chinese这个类,就实现了people这个接口。 public class chinese implements people{ public say() {System.out.println("你好!");}}
implements可以实现多个接口,用逗号分开就行了。实现父类,子类不可以覆盖父类的方法或者变量。即使子类定义与父类相同的变量或者函数,也会被父类取代掉。
若同时用到 extends 和 implements 的时候,extends 必须放在 implements 关键字之前。
例子:
这里有一个游戏,人猿泰山。 主角是一个单独的类,这里我们主要用怪物说明接口的用法: 怪物有很多种, 按地域分:有的在天上飞,有的在地上跑,有的在水里游 按攻击方式分:有的能近距离物理攻击,有的能远距离射击
假设游戏里需要这样的几种怪——
野狗:地上移动,近距离攻击
黑熊:地上移动,近/远距离攻击
秃鹫:地上/天上移动,远距离攻击
食人鱼: 水中移动,近距离攻击
鳄鱼:地上/水中移动,近距离攻击
显然,如果我们将每一种怪物定义为一个类,那就不是面向对象的程序开 发了,我们应当使用接口:
interface OnEarth{//陆地接口 int earthSpeed;//陆地移动速度 void earthMove();//陆地移动方法 } interface OnWater{//水中接口 int waterSpeed;//水中移动速度 void waterMove();//水中移动方法 } interface OnAir{//空中接口 int airSpeed;//水中移动速度 void airMove();//水中移动方法 } interface NearAttack{//近距离攻击接口 int nearAttackPower;//近距离攻击力 void nearAttack();//近距离攻击方法 } interface FarAttack{//远距离攻击接口 int farAttackPower;//远距离攻击力 void farAttack();//远距离攻击方法 }
这样一来,根据需求,我们可以选择性的继承接口:
class Tyke implements OnEarth, NearAttack{//野狗类 void earthMove(){//实现继承的方法1 } void nearAttack(){//实现继承的方法2 } } class BlackBear implements OnEarth, NearAttack, FarAttack{//黑熊类 void earthMove(){//实现继承的方法1 } void nearAttack(){//实现继承的方法2 } void farAttack(){//实现继承的方法3 } } class Vulture implements OnEarth, OnAir, FarAttack{//秃鹫类 void earthMove(){//实现继承的方法1 } void airMove(){//实现继承的方法2 } void farAttack(){//实现继承的方法3 } } class ManeatFish implements OnWater, NearAttack{//食人鱼类 void waterMove(){//实现继承的方法1 } void nearAttack(){//实现继承的方法2 } } class Crocodile implements OnEarth, OnWater, NearAttack{//鳄鱼类 void earthMove(){//实现继承的方法1 } void waterMove(){//实现继承的方法2 } void nearAttack(){//实现继承的方法3 } }
- java中接口(interface)
- interface Java 中接口
- java接口(interface)
- Java- 接口(interface)
- Java 接口(interface)
- java 接口(interface)
- 【黑马程序员】java中--------------抽象类(abstract)接口(interface)
- JAVA中基于接口(Interface)的回调机制
- Java中接口(Interface)的定义和使用
- java 中的接口(interface)
- Java中的接口(interface)
- Java中的接口(interface)
- Java中的接口(interface)
- Java中的接口(Interface)
- Java中的接口(interface)
- JAVA(十五)--接口INTERFACE
- JAVA基础-接口(interface)
- Java基础知识-----接口(interface)
- 富客户端查看工具
- 第九章 图 9.1 图的基本概念
- Android Path中的时间轴的源代码
- 第2章 递归与分治策略
- Windows server 2003 SSL 配置
- java中接口(interface)
- 筛数法来快速求素数----数论知识,很有用的
- 简洁的纯CSS三级菜单
- csapp2e 家庭作业 2.92
- SSL应用系列之一:CA证书颁发机构(中心)安装图文详解
- svn重定位的方法
- 战争迷雾效果实现方案的flash演示及源码
- 需要绑定GridView两列的方法
- 过桥问题和倒水问题