Java语言入门教程(十六):Java语言中的接口.doc
上传人:sy****28 上传时间:2024-09-15 格式:DOC 页数:3 大小:14KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

Java语言入门教程(十六):Java语言中的接口.doc

Java语言入门教程(十六):Java语言中的接口.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Java语言入门教程(十六):Java语言中的接口时间:2011-06-13csdn博客taomoon719-通过前面几篇文章的学习,初学者可以初步掌握Java语言中继承的概念和使用方法,对抽象类的使用也有一定的理解。值得注意的是,Java中类与类的继承是单继承,也就是一个子类最多同时可以继承一个父类。那么让我们看下面的例子。假设我们要开发一个游戏系统,而游戏系统中有三种飞行器:飞机、小鸟、蜘蛛侠。这三种飞行器都需要实现起飞,飞行,降落的逻辑,但是实现方法各不相同。那么这三个类应该有一个抽象类作为父类,规范共同行为。packagecom.csst.inter;publicabstractclassFlyer{publicabstractvoidtakeoff();publicabstractvoidfly();publicabstractvoidland();}packagecom.csst.inter;publicclassSpiderManextendsFlyer{@Overridepublicvoidfly(){//TODOAuto-generatedmethodstub}@Overridepublicvoidland(){//TODOAuto-generatedmethodstub}@Overridepublicvoidtakeoff(){//TODOAuto-generatedmethodstub}}//Plane,Bird省略让我们仔细看Flyer这个抽象类,它的特点是没有具体方法,所有方法都是抽象方法,而且没有变量。而如果这时,SpiderMan类需要继承另外一个父类,就做不到了,因为Java语言中的继承是单继承的。而如果SpiderMan不继承Flyer类也不可以,因为所有飞行器都用Flyer类型来规范。正为了解决Java中单继承的问题,Java中有了接口的概念。我们可以如下修改上面代码:packagecom.csst.inter;publicinterfaceFlyer{publicvoidtakeoff();publicvoidfly();publicvoidland();}packagecom.csst.inter;publicclassSpiderManimplementsFlyer{publicvoidfly(){//TODOAuto-generatedmethodstub}publicvoidland(){//TODOAuto-generatedmethodstub}publicvoidtakeoff(){//TODOAuto-generatedmethodstub}}-Java语言入门教程(十六):Java语言中的接口(2)时间:2011-06-13csdn博客taomoon719-如果有一个父类SuperMan,SpiderMan可以同时继承,如下:packagecom.csst.inter;publicclassSpiderManextendsSuperManimplementsFlyer{publicvoidfly(){//TODOAuto-generatedmethodstub}publicvoidland(){//TODOAuto-generatedmethodstub}publicvoidtakeoff(){//TODOAuto-generatedmethodstub}}可以说,接口就是一种特殊的抽象类,特殊就特殊在于所有方法都是抽象方法,而且没有变量。在Java中,一个类可以同时实现多个接口,也可以继承类和实现接口同时存在,如SpiderMan类所示。类实现接口后,需要覆盖接口中的抽象方法,否则该类必须声明为抽象类。接口和接口之间也可以继承,且一个接口可以继承多个接口,因为接口中的方法都是抽象的。如下:interfaceA{//TBD}interfaceB{//TBD}interfaceCextendsA,B{//TBD}所以,所谓的单继承,是指类与类之间的继承,而接口与接口的继承,是一对多的,类实现接口,也是一对多的。本文来自编程入门网:http://www.bianceng.cn/Programming/Java/201106/27126.htm