JAVA 类和接口介绍

来源:互联网 发布:免费英语口语软件app 编辑:程序博客网 时间:2024/06/06 03:59

因为我个人有体会了一些东东
也许提出来给大家参考看看(观念是一样的)
我在这里再举个例子,或许会比较好了解

首先,我将会定义一个interface与一些class


interface 汽车操作接口{
    void 油门(){}
    void 剎车(){}
    void 方向盘(){}
}


以下是一些车子的class,这些车子都implements汽车操作接口
因为每辆车的结构不同,所以对于汽车的操作接口的设计方法也不同
虽然所要达到的功能名称都相同,但我们还是要一一的设计


class Ford_Escape implements 汽车操作接口{
    void 油门(){
        //针对Escape详细的加油方法
    }
    void 剎车(){
        //针对Escape详细的剎车方法
    }
    void 方向盘(){
        //针对Escape详细的转动方向盘方法
    }
}

 


class Honda_CRV implements 汽车操作接口{
    void 油门(){
        //针对CRV详细的加油方法
    }
    void 剎车(){
        //针对CRV详细的剎车方法
    }
    void 方向盘(){
        //针对CRV详细的转动方向盘方法
    }
}

 


class NISSAN_X_TRAIL implements 汽车操作接口{
    void 油门(){
        //针对X_TRAIL详细的加油方法
    }
    void 剎车(){
        //针对X_TRAIL详细的剎车方法
    }
    void 方向盘(){
        //针对X_TRAIL详细的转动方向盘方法
    }
}



现在我再定义一个Ankiclass //anki是一个人,他会开车。


public class Anki{
    //假设anki的开车方法如下
    //传人的参数是 汽车操作作面
    //也就是说,如果你要叫anki开车,只要你把implements汽车操作接口
    //的车给我,我就能够开这辆车
    public void 开车(汽车操作作面 car_interface){
        car_interface.油门();
        car_interface.方向盘();
        car_interface.剎车();
    }
    public static void main(String [] args){
        Anki anki=new Anki();
        anki.开车(new Honda_CRV());
        anki.开车(new Ford_Escape());
        anki.开车(new NISSAN_X_TRAIL());
    }
}


从上面的例子来看,虽然每辆车都不一样,但是它个都有汽车的操作接口
不管你给anki的是什么车车,只要有了这个接口(汽车操作接口)
anki
都能把车车开得很顺畅(也就是能够让车子行驶)

那在Java里有没有例子呢?
有的,以下就是一个很好的例子:

Shape
是一个interface
而目前有implementsclassArea, CubicCurve2D, GeneralPath, Line2D, Polygon, QuadCurve2D, Rectangle, RectangularShape
从字面上的意思来看,上面的class都是一些有implements Shape这个interface

Graphics2D这个class有这么一个method
abstract void draw(Shape s)
也就是说只要你给我一个Shape不管是什么图形我都能够将它画出,
而不需要管这些Shape是什么样的class
换句话说,只要是有实做出Shape这个interfaceclass我都能多画出。

这样是不是非常方便呢?

原创粉丝点击