快速业务通道

Java语言入门教程(十六):Java语言中的接口 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16

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

时间:2011-06-13 csdn博客 taomoon719

通过前面几篇文章的学习,初学者可以初步掌握Java语言中继承的概念和使 用方法,对抽象类的使用也有一定的理解。值得注意的是,Java中类与类的继承 是单继承,也就是一个子类最多同时可以继承一个父类。那么让我们看下面的例 子。

假设我们要开发一个游戏系统,而游戏系统中有三种飞行器:飞机、小鸟、 蜘蛛侠。这三种飞行器都需要实现起飞,飞行,降落的逻辑,但是实现方法各不 相同。那么这三个类应该有一个抽象类作为父类,规范共同行为。

package com.csst.inter;
public abstract class Flyer {
    public abstract void takeoff();
    public abstract void fly();
    public abstract void land();
}
package com.csst.inter;
public class SpiderMan extends Flyer {
    @Override
    public void fly() {
       // TODO Auto-generated method stub
    }
    @Override
    public void land() {
       // TODO Auto-generated method stub
    }
    @Override
    public void takeoff() {
       // TODO Auto-generated method stub
    }
}
// Plane,Bird省略

让我们仔细看Flyer这个抽象类,它的特点是没有具体方法,所有方法都是抽 象方法,而且没有变量。而如果这时,SpiderMan类需要继承另外一个父类,就 做不到了,因为Java语言中的继承是单继承的。而如果SpiderMan不继承Flyer类 也不可以,因为所有飞行器都用Flyer类型来规范。正为了解决Java中单继承的 问题,Java中有了接口的概念。我们可以如下修改上面代码:

package com.csst.inter;
public 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 stub
    }
    public void land() {
       // TODO Auto-generated method stub
    }
    public void takeoff() {
       // TODO Auto-generated method stub
    }
}

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 stub
    }
    public void land() {
       // TODO Auto-generated method stub
    }
    public void takeoff() {
       // TODO Auto-generated method stub
    }
}

可以说,接口就是一种特殊的抽象类,特殊就特殊在于所有方法都是抽象方 法,而且没有变量。在Java中,一个类可以同时实现多个接口,也可以继承类和 实现接口同时存在,如SpiderMan类所示。类实现接口后,需要覆盖接口中的抽 象方法,否则该类必须声明为抽象类。

接口和接口之间也可以继承,且一个接口可以继承多个接口,因为接口中的 方法都是抽象的。如下:

interface  A{
       //TBD
}
interface  B{
       //TBD
}
interface C extends A,B{
//TBD
}

所以,所谓的单继承,是指类与类之间的继承,而接口与接口的继承,是一 对多的,类实现接口,也是一对多的。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号