《Java语言入门教程(十六):Java语言中的接口》由会员分享,可在线阅读,更多相关《Java语言入门教程(十六):Java语言中的接口(3页珍藏版)》请在金锄头文库上搜索。
1、Java 语言入门教程(十六):Java 语言中的接口时间:2011-06-13 csdn 博客 taomoon719 -通过前面几篇文章的学习,初学者可以初步掌握 Java 语言中继承的概念和使 用方法,对抽象类的使用也有一定的理解。值得注意的是,Java 中类与类的继承 是单继承,也就是一个子类最多同时可以继承一个父类。那么让我们看下面的例 子。假设我们要开发一个游戏系统,而游戏系统中有三种飞行器:飞机、小鸟、 蜘蛛侠。这三种飞行器都需要实现起飞,飞行,降落的逻辑,但是实现方法各不 相同。那么这三个类应该有一个抽象类作为父类,规范共同行为。package com.csst.inter;pu
2、blic abstract class Flyer public abstract void takeoff();public abstract void fly();public abstract void land();package com.csst.inter;public class SpiderMan extends Flyer Overridepublic void fly() / TODO Auto-generated method stubOverridepublic void land() / TODO Auto-generated method stubOverridep
3、ublic void takeoff() / TODO Auto-generated method stub/ Plane,Bird 省略让我们仔细看 Flyer 这个抽象类,它的特点是没有具体方法,所有方法都是抽 象方法,而且没有变量。而如果这时,SpiderMan 类需要继承另外一个父类,就 做不到了,因为 Java 语言中的继承是单继承的。而如果 SpiderMan 不继承 Flyer 类 也不可以,因为所有飞行器都用 Flyer 类型来规范。正为了解决 Java 中单继承的 问题,Java 中有了接口的概念。我们可以如下修改上面代码:package com.csst.inter;pub
4、lic interface Flyer public void takeoff();public void fly();public void land();package com.csst.inter;public class SpiderMan implements Flyer public void fly() / TODO Auto-generated method stubpublic void land() / TODO Auto-generated method stubpublic void takeoff() / TODO Auto-generated method stub
5、-Java 语言入门教程(十六):Java 语言中的接口(2)时间:2011-06-13 csdn 博客 taomoon719 如果有一个父类 SuperMan,SpiderMan 可以同时继承,如下:package com.csst.inter;public class SpiderMan extends SuperMan implements Flyer public void fly() / TODO Auto-generated method stubpublic void land() / TODO Auto-generated method stubpublic void take
6、off() / TODO Auto-generated method stub可以说,接口就是一种特殊的抽象类,特殊就特殊在于所有方法都是抽象方 法,而且没有变量。在 Java 中,一个类可以同时实现多个接口,也可以继承类和 实现接口同时存在,如 SpiderMan 类所示。类实现接口后,需要覆盖接口中的抽 象方法,否则该类必须声明为抽象类。接口和接口之间也可以继承,且一个接口可以继承多个接口,因为接口中的 方法都是抽象的。如下:interface A/TBDinterface B /TBDinterface C extends A,B/TBD所以,所谓的单继承,是指类与类之间的继承,而接口与接口的继承,是一 对多的,类实现接口,也是一对多的。本文来自编程入门网:http:/