二、接口的基本概念                                             
    接口可以说是Java程序设计中最重要的概念之一了,“面向接口编程”是面向对象世界的共识,所以深刻理解并熟练应用接口是每一个学习Java编程人员的重要任务
 
1.接口概念                                                                             
Java可以创建一种称作接口(interface)的类,在这个类中,所有的成员方法都是抽象的,也就是说它们都只有定义而没有具体实现,接口是抽象方法和常量值的定义的集合。从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。定义接口的语法格式如下:
访问修饰符 修饰符 interface  接口名称 {
       属性集(常量集)
       抽象方法集
}
示例程序:Runner.java
public interface Runner {
       int ID = 1;            //常量
       public void start();     //三个抽象方法,public都可以省去
       public void run();
       public void stop();
}
目前看来接口和类差不多。确实如此,接口本就是从抽象类中演化而来的,因而除特别规定,接口享有和类同样的“待遇”。比如,源程序中可以定义0~多个类或接口,但最多只能有一个public的类或接口,如果有则源文件必须取和public的类和接口相同的名字。和类的继承格式一样,接口之间也可以继承,子接口可以继承父接口中的常量和抽象方法并添加新的抽象方法等。
但接口有其自身的一些特性:
l         接口中声明的属性默认为,也只能是public static final的,因而在常量声明时可以省略这些修饰符;
l         接口中只能定义抽象方法,这些方法默认为public abstract的、也只能是public abstract的,因而在声明方法时可以省略这些修饰符;
l         和继承抽象父类类似,Java类还可以“实现”接口。
 
Java类在继承父类的同时可以同时实现多个接口,也继承了所有接口中的全部成分,仍然必须重写(实现)全部抽象方法,否则只能声明为抽象类。
类实现多个接口时,您需要做的仅是在关键字“implements”后用逗号分隔接口。总之,接口就是其它类需要实现的行为模板(以方法的形式表现)。
例:接口定义及实现
程序:Person.java
public class Person implements Runner {
    public void start() {
        //弯腰、蹬腿、咬牙、瞪眼、 开跑
    }
       public void run() {
              // 摆动手臂、 维持直线方向
       }
       public void stop() {
              // 减速直至停止、喝水。
       }
}
 
2.为什么使用接口?                                                                    
两个类中的两个类似的功能,调用它们的类动态地决定一种实现,那它们提供一个抽象父类,子类分别实现父类所定义的方法。
问题的出现:Java是一种单继承的语言,一般情况下,哪个具体类可能已经有了一个父类,解决是给它的父类加父类,或者给它父类的父类加父类,只到移动到类等级结构的最顶端。这样一来,对一个具体类的可插入性的设计,就变成了对整个等级结构中所有类的修改。
接口是可插入性的保证。
在一个等级结构中的任何一个类都可以实现一个接口,这个接口会影响到此类的所有子类,但不会影响到此类的任何父类。此类将不得不实现这个接口所规定的方法,而其子类可以从此类自动继承这些方法,当然也可以选择置换掉所有的这些方法,或者其中的某一些方法,这时候,这些子类具有了可插入性(并且可以用这个接口类型装载,传递实现了他的所有子类)。
我们关心的不是哪一个具体的类,而是这个类是否实现了我们需要的接口。
接口提供了关联以及方法调用上的可插入性,软件系统的规模越大,生命周期越长,接口使得软件系统的灵活性和可扩展性,可插入性方面得到保证。
 
3.接口的基本作用                                                                              
接口把方法的特征和方法的实现分割开来。这种分割体现在接口常常代表一个角色,它包装与该角色相关的操作和属性,而实现这个接口的类便是扮演这个角色的演员。一个角色由不同的演员来演,而不同的演员之间除了扮演一个共同的角色之外,并不要求其它的共同之处。
对于下述情况,接口是有用的:
   (1)声明方法,期望一个或更多的类来实现该方法。
   (2)揭示一个对象的编程接口,而不揭示类的实际程序体。(当将类的一个包输送到其它开发程序中时它是非常有用的。)
   (3)捕获无关类之间的相似性,而不强迫类关系。
(4)可以作为参数被传递到在其它对象上调用的方法中
 
4.接口示例                                                                          
4.1 接口示例1:接口定义,接口实现类  
4.2 接口示例2:一个接口可以有多个不同的实现类 
4.3 接口示例3:一个类可以继承,也可以实现
Java私塾跟我学系列——JAVA篇  网址:http://www.javass.cn  电话:010-68434236