黑马程序员技术交流社区

标题: JAVASE基础-接口 [打印本页]

作者: zzkang0206    时间: 2014-2-13 09:35
标题: JAVASE基础-接口
接口的概念:初期理解,可以认为是一个特殊的抽象类
                      当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。
                      class用于定义类
                      interface用于定义接口。
接口的格式:
   interface {}
接口中的成员修饰符是固定的。
成员常量:publicstatic final
成员函数:publicabstract
发现接口中的成员都是public的。
接口的出现将“多继承”通过另一种形式体现出来,即“多实现”

接口注意事项:
接口:是不可以创建对象的,因为有抽象方法。
需要被子类实现,子类对接口中的抽象方法全都覆盖后,子类才可以实例化。
否则子类是一个抽象类。
接口可以被类多实现,也是对多继承不支持的转换形式。java支持多实现。

怎样实现多继承?
java只有在接口和接口之间才能实现多继承
类与类之间只能实现单继承,而接口让类与类多实现
接口的特点
1.接口是对外暴露的规则。
2.接口是程序的功能扩展。
3.接口的出现降低耦合性。
4.接口可以用来多实现。
5.类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口。
6.接口与接口之间可以有继承关系。
单继承过后的类,接口的多实现


1.    interface Inter  
2.    {  
3.             public static final int NUM = 3;  
4.             public abstract void show();  
5.    }  
6.      
7.    interface InterA  
8.    {  
9.             public abstract void show();  
10.  }  
11.     
12.  class Demo  
13.  {  
14.           public void function(){}  
15.  }  
16.     
17.  //一个类继承一个类,还能多实现  
18.  class Test extends Demo implementsInter,InterA  
19.  {  
20.           public void show(){}  
21.  }  
22.     
23.  //接口A  
24.  interface A  
25.  {  
26.           void methodA();//由接口自动填写 public static这两个关键字  
27.  }  
28.     
29.  //接口B  
30.  interface B //extends A  
31.  {  
32.           void methodB();  
33.  }  
34.     
35.  //java只有在接口和接口之间才能实现多继承  
36.  //接口C  
37.  interface C extends B,A  
38.  {  
39.           voidmethodC();  
40.  }  
41.     
42.  //一般类D实现接口C  
43.  class D implements C  
44.  {  
45.           public void methodA(){}  
46.           public void methodC(){}  
47.           public void methodB(){}  
48.  }  
49.     
50.  class InterfaceDemo  
51.  {  
52.           public static void main(String[] args)  
53.           {  
54.                     Testt = new Test();  
55.                     System.out.println(t.NUM);  
56.                     System.out.println(Test.NUM);  
57.                     System.out.println(Inter.NUM);  
58.                     //t.NUM,Test.NUM, Inter.NUM指向的都是一个常量,输出结果是 3  
59.           }  
60.  }  



作者: 老貓钓鱼    时间: 2014-2-13 09:45
学习学习




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2