首页 > 代码库 > JAVA学习遇到的问题:接口实现

JAVA学习遇到的问题:接口实现

引用知乎看到对接口的总结:

接口就是个招牌
比如说你饿了,看到前面有个挂着KFC的店,然后你想到可以进去买汉堡了。
KFC就是接口,我们看到了这个接口,就知道这个店会卖汉堡(实现接口)。
那么为什么我们要去定义一个接口,这个店可以直接卖汉堡啊(直接写实现方法),是的,这个店可以直接卖炸鸡腿,但没有挂KFC的招牌,我们就不知道里面卖的是啥。
我们可能就要进去问,你这里卖不卖汉堡啊(这就是反射)。很显然,这样一家家的问实在是非常麻烦(反射性能很差)。
我们可能就要记住,XX路XXX号卖汉堡,XX...(硬编码),很显然这样我们要记住的很多很多东西(代码量剧增),而且,如果有新的店卖汉堡,我们也不可能知道(不利于扩展)。
 

接口的定义如下:

[修饰符]interface<接口名>[extends<接口列表>]
{
    数据成员;   //默认为public static final
    成员函数;   //默认为public abstract
}

注意:接口可实现多重继承

接口的实现如下:

[访问修饰符]class 类名 implements[接口列表]
{
        public  成员函数;
}
示例如下:
 
 1 interface InterFace0{
 2     void print();
 3 }
 4 class InterFace1 implements InterFace0{
 5     public void print(){
 6         System.out.println("接口InterFace0实现");
 7     }
 8 }
 9 public class InterFace {
10     public static void main(String args[]){
11         InterFace1 inter = new InterFace1();
12         inter.print();
13     }
14 }

接口的多重继承:

1.可以让一个接口去继承多个接口, 再用一个类来实现接口

 1 interface InterFace0{
 2     void print0();
 3 }
 4 interface InterFace1{
 5     void print1();
 6 }
 7 //接口InterFace2继承InterFace0,InterFace1
 8 interface InterFace2 extends InterFace0,InterFace1{         
 9 }
10 //achieve类实现接口
11 class achieve implements InterFace2{                      
12     public void print0(){
13         System.out.println("InterFace0  print0方法");
14     }
15     public void print1(){
16         System.out.println("InterFace1  print1方法");
17     }
18 }
19 public class InterFace {
20     public static void main(String args[]){
21         achieve inter = new achieve();
22         inter.print0();
23         inter.print1();
24     }
25 }
26 //输出:
27 //InterFace0  print0方法
28 //InterFace1  print1方法

2.也可以让一个类去继承多个接口

 1 interface InterFace0{
 2     void print0();
 3 }
 4 interface InterFace1{
 5     void print1();
 6 }
 7 //类achieve继承InterFace0,InterFace1两个接口
 8 class achieve implements InterFace0,InterFace1{
 9     public void print0(){
10         System.out.println("InterFace0  print0方法");
11     }
12     public void print1(){
13         System.out.println("InterFace1  print1方法");
14     }
15 }
16 public class InterFace {
17     public static void main(String args[]){
18         achieve inter = new achieve();
19         inter.print0();
20         inter.print1();
21     }
22 }
23 //输出:
24 //InterFace0  print0方法
25 //InterFace1  print1方法

 

 

JAVA学习遇到的问题:接口实现