[18/12/05]接口(interface)

 一、定义(类之上的公共标准)

      一个特殊的类,用interface关键字来表示。只有全局变量和抽象方法。解决Java中子类只能单继承的问题

【语法】 [访问修饰符:public 或 default]   [ 接口名字:和类名形似 ]   ( extends  [ 父接口1,父接口2.。。] )

            {

             常量定义;

             抽象方法;

           }

即:

     1. 访问修饰符:只能是public或默认       2. 接口名:和类名采用相同命名机制。    3. extends:接口可以多继承。

      4. 常量:接口中的属性只能是常量,总是:public static final 修饰。不写也是。

      5. 方法:接口中的方法只能是:public abstract。 省略的话,也是public abstract。

【注】

      1. 子类通过implements来实现接口中的规范。        2. 接口不能创建实例,但是可用于声明引用变量类型。

      3. 一个类实现了接口,必须实现接口中所有的方法,并且这些方法只能是public的。

      4. JDK1.7之前,接口中只能包含静态常量、抽象方法,不能有普通属性、构造方法、普通方法。

      5. JDK1.8后,接口中包含普通的静态方法。

【示例】

 

【代码示例】

 1 //接口:一个特殊的类  关键字  定义接口interface 和 实施接口 implement
 2  //飞行接口  
 3  interface Volant { 
 4     int FLY_HIGHT = 100;   // 总是:public static final类型的;
 5     void fly();           //总是:public abstract void fly();
 6 }
 7 /**善良接口*/
 8 interface Honest { 
 9     void helpOther();
10 }
11 
12 
13 /**Angle类实现飞行接口和善良接口*/
14 class Angel implements Volant, Honest{ //天使类继承(这里用关键字 implement:实施实现)2个接口,重写2个接口中的抽象方法
15     public void fly() {
16         System.out.println("天使在飞行");
17     }
18     public void helpOther() {
19         System.out.println("扶老奶奶过马路!");
20     }
21 }
22  
23  //好人类只继承善良的接口
24 class GoodMan implements Honest {
25    public void helpOther() {
26         System.out.println("我是一个好人");
27     }  
28 }
29 
30 class BirdMan implements Volant {
31     public void fly() {
32         System.out.println("我是鸟人,正在飞!");
33     }
34 }
35 
36 
37 public class Test_1205_01 
38 {
39     public static void main(String[] args) 
40     {
41         Volant volant = new Angel(); //接口Volant 不能创建实例,但是可用于声明引用变量类型(Volant volant) 。
42         volant.fly();
43         System.out.println(Volant.FLY_HIGHT); //输出常量接口中的常量
44          
45 
46         Honest honest = new GoodMan();
47         honest.helpOther(); //输出 GoodMan类的动作
48     }
49 }

 

posted @ 2018-12-05 21:28  ID长安忆  阅读(228)  评论(0)    收藏  举报