Interface接口

Posted 自学开发的老司机

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Interface接口相关的知识,希望对你有一定的参考价值。

一、接口及作用

  接口是一个非常重要的概念,理解这个,先举一个实现生活中的实例。
  现在,电脑主板,有很多插槽,可用来插CPU、内存等。当CPU等元件需要更新换代升级时,只要将CPU单独更换就可以了,而不需要更换主板。其实,主板上的这些暴露在外的插槽,就可以理解为接口。


  接口就是对外暴露的规则,只要符合规则的CPU、内存,不论品牌、型号、规格,都可以安插使用。

  接口是程序的功能扩展。有了插槽,也就提高了主板的功能扩展性,比如内存不够用了,我们就可以换成内容最大的内存条,或再加新的内存条。

  接口降低了耦合性。有了规则,主板和CPU等元件的就分开了,可以分开生了。只要符合规则,元件就可以插入插槽进行使用。这样,主板厂商和CUP厂商之间的联系就少了。

 

二、接口的定义格式

  class 用于定义类。
  interface用于定义接口。

  接口中常见的定义:常量、抽象方法

  常量:public static final

  方法:public abstract 

  接口中的成员都是public,而且这些修饰都是可以省略的,只要是interface,系统就会自动补足。

 

三、接口的特点

  接口不能直接创建对象

  类与类之间是“继承extends”。(因为父类中有非抽象内容,可以直接拿过来用)

  类与接口之间是“实现implements”。(因为接口内的成员都是抽象的,子类要将父类中的成员全都实现后,才可使用)

  接口与接口之间是“继承extends”。

  接口可以被类多实现,即一个类可以实现多个类。这是对JAVA不支持多继承的一种转换形式。

interface Inter {
    public static final int NUM = 3;

    public abstract void show();
}

class Test implements Inter // class是继承(因为父类中有非抽象内容,可以被子类调用)
                            // interface是实现(因为子类要全都将接口中的内容实例化后才能使用)
{
    public void show() {
    }
}

public class InterfaceDemo {

    public static void main(String[] args) {
        Test t = new Test();
        System.out.println(t.NUM); // 对象可以调用成员
        System.out.println(Test.NUM); // 类可以调用成员。因为Test实现了Inter,相当于其中也有NUM
        System.out.println(Inter.NUM); // 接口可以调用成员

    }

}

 

多现实

interface Inter {                    //第一个接口
    public static final int NUM = 3;

    public abstract void show();    
}

interface InterA {                    //第二个接口
    public abstract void method();
}

class Demo {
    public void myFunction() {
    }

}

// 类可以继承类同时实现多个接口,同时继承类。
//因为接口中的方法没有方法主休,所以可以多实现,由子类任意定义。
class Test extends Demo implements Inter, InterA 
{
    public void show(){}    //复写接口内的所有方法

    public void method(){}    //复写接口内的所有方法
}
interface Inter {                    //第一个接口
    public static final int NUM = 3;

    public abstract void show();    
}

interface InterA {                    //第二个接口
    public abstract void show();
}

class Test extends Demo implements Inter, InterA 
{
    public void show(){}  //两个接口内的方法同名时,实现多接口时只要复写一次即可
}

 

接口之间是继承

interface A {                    //A有一个方法
    void methodA();
}

interface B extends A {            //B有两个方法
    void methodB();
}

interface C extends B {            //C有三个方法
    void methodC();
}

class D implements C{            //接口A继承B,B函数C,类D实现接口C,D中要复写3个方法
    public void methodA(){}
    public void methodB(){}
    public void methodC(){}
}
interface A {                    //A有一个方法
    void methodA();
}

interface B  {                  //B有一个方法
    void methodB();
}

interface C extends A、B {      //C有继承A、B
    void methodC();
}        

 

以上是关于Interface接口的主要内容,如果未能解决你的问题,请参考以下文章

0507 构造代码块和static案例,接口interface

如何在嵌套片段内的两个子片段之间进行通信

PHP interface(接口)的示例代码

Interface/接口

TypeScript Interface(接口)

重构第9天:提取接口(Extract Interface)