接口(Interface

接口(Interface)

  • 基本介绍:

    接口是抽象类的一个延申,特是一个特殊的抽象类,在接口中只有抽象方法,没有具体方法(jdk1.8之前)

  • 书写方式:

    java中使用interface关键字来定义接口(将定义类的关键字class更改为interface)

    public interface pop3 {//接口
        public abstract void getMethod();//抽象方法
    }
    
  • 实现:

    implements:实现接口的关键字,实现接口的只能是类

    public class pop2 implements pop3{//接口的实现类
    
        @Override//重写接口中的抽象方法
        public void getMethod() {
            
        }
    }
    
  • 用处:

    用处:提供规范

    对外部提供功能的声明,故接口是用来被具体类实现的,类实现接口使用implements关键字。

  • 优点:

    通过接口大大提高了系统的可扩展性和可维护性达到灵活的效果。

  • 特点:

    1. 一个类继承一个接口后,该类必须实现此接口的所有抽象方法,若此类不想实现接口中的方法,则必须定义该类为抽象类。
    2. 接口不能被实例化,只能通过其实现类来实现。
    3. 接口中没有构造方法。
    4. 接口中的抽象方法必须(只能)是public,抽象的,不写时默认是公共的,抽象的。
    5. 接口中的属性必须(只能)是final,static的,步写时默认是final,static,注意:属性必须赋初始值。
    6. 通过接口和实现类可以实现多态。声明是接口类型,具体使用的是其实现类对象。此时执行方法时,执行的是实现类实现之后的方法。
    7. 一个接口可以被不同的类实现;一个类也可以实现多个接口,多个接口之间用','隔开
    8. java中接口可以继承接口,子接口自动拥有父接口的属性和方法。
    9. java中接口是多继承机制的。
  • JDK1.8后接口的变化:

    1. 增添default方法:

      1. 接口中可以定义非抽象方法(在方法声明部分添加default关键字)
      2. 使用目的:解决接口升级问题(多个类继承同一接口,此方法要添加一个方法时,多个类将通知报错),在接口中定义非抽象方法就很好地解决了这个问题。
    2. 增添static方法:

      1. 允许接口直接定义一个或多个静态方法,静态方法可以存在方法体,
      2. 可以直接通过接口名直接调用静态方法。不能通过接口的实现类对象调用接口的静态方法。
    3. 增添@FunctionalInterface

      1. 解释:注解,意思是声明一个函数式接口。

      2. 函数式接口的要求:接口中有且仅有一个抽象方法。

      3. 它的存在是为了适应lambda表达式。

      4. 书写位置:接口外部。如下:

        @FunctionalInterface
        public interface pop3 {
            public abstract void getMethod();
        }
        

posted on 2021-05-14 21:22  凡人精灵  阅读(337)  评论(0编辑  收藏  举报

导航