接口

一、接口的简介

  1、接口是一种引用类型,是方法的集合

  2、如果说类的内部封装了成员变量、构造方法和成员方法,那么 接口的内部主要就是封装了方法

  3、从狭义的角度讲就是指java中的interface

  4、从广义的角度讲对外提供规则的都是接口

  5、JDK 7及以前:包含抽象方法

     JDK 8:新增默认方法和静态方法

     JDK 9:新增私有方法 

二、接口的定义

  1、接口的定义格式

    public interface 接口名称 {   

       // 抽象方法     

      // 默认方法     

      // 静态方法     

      // 私有方法

      }

  2、接口中的抽象方法

    public abstract void method();

    该方法使用abstract修饰,没有方法体,该方法供子类实现使用(public  abstract关键字可以省略)

  3、接口中的静态方法和默认方法

    默认方法:使用 default 修饰,不可省略,供子类调用或者子类重写。

      public default void method() {

               // 执行语句     

      }

    静态方法:静态方法:使用 static 修饰,供接口直接调用

     public static void method2() {

             // 执行语句         

    } 

  4、接口中的私有方法和私有静态方法

    使用 private 修饰,供接口中的默认方法或者静态方法调用

     private void method() {

             // 执行语句     

    } 

  5、接口中,无法定义成员变量,但是可以定义常量,其值不可以改变,默认使用public static final修饰。

     接口中,没有构造方法,不能创建对象。

     接口中,没有静态代码块

三、接口的实现

  类与接口的关系为实现关系,实现接口的类称为接口的实现类,,一个类能继承一个父类,但同时也可以实现多个接口,接口的实现使用implements 关键字

  1、实现类必须实现接口中所有的抽象方法,否则该实现类也必须的抽象类

  2、实现类继承了接口的默认方法,即可以直接调用,也可以重写。

  3、默认方法可以继承,可以重写,二选一,但是只能通过实现类的对象来调用。

  4、静态方法只能使用接口名调用,不可以通过实现类的类名或者实现类的对象调用

  5、私有方法:只有默认方法可以调用,私有静态方法:默认方法和静态方法可以调用

  6、接口中,有多个默认方法时,实现类都可继承使用。如果默认方法有重名的,则必须进行方法的重写

  7、接口中,存在同名的静态方法并不会冲突,因为只能通过各自接口名访问静态方法

  8、当一个类,既继承一个父类,又实现若干个接口时,父类中的成员方法与接口中的默认方法重名,子类就近选择执 行父类的成员方法。

四、接口的多继承

  一个接口能继承另一个或者多个接口,这和类之间的继承比较相似。接口的继承使用 extends 关键字,子接口继 承父接口的方法。如果父接口中的默认方法有重名的,那么子接口需要重写一次。

 

posted @ 2019-08-10 13:37  七月流星丶  阅读(157)  评论(0)    收藏  举报