0
点赞
收藏
分享

微信扫一扫

详解 JDK7 和 JDK8 中接口(Interface)区别

火热如冰 2022-03-11 阅读 79

JDK 7

接口(interface)在JDK7及之前的版本对接口的要求:

接口定义:

  • 使用 interface 关键字 。
  • 接口中的 所有 成员变量都默认是由 public static final 修饰的
  • 接口中的 所有方法都默认是由 public abstract 修饰的。也可以使用 protected ,但不能用 private 。
  • 接口中的 所有方法都没有方法体
  • 接口没有构造方法。因为构造方法用于创建对象。
  • 实现接口的类 必须提供接口中所有方法的具体实现内容

可声明 静态常量、属性和 抽象方法:

全局变量( public static final )和 抽像方法( public abstract method() )

interface A {
    //默认采用public static final
    Integer num = 1;

    /**
     * 抽象方法
     * 默认采用public abstract
     */
    void test();
}

JDK8

在 JDK7 的基础上可以声明 静态方法 和 默认方法,必须写方法体

接口定义:

  • 默认方法用于接口的扩展,实现类可用,可重写
  • 静态方法用于接口的扩展,接口类名直接调用,实现类不可调用,不可重写
interface A {
    //默认采用public static final
    Integer num = 1;

    /**
     * 抽象方法
     * 默认采用public abstract
     */
    void test();

    /**
     * 默认方法
     */
    default void test1() {//方法1...}

    /**
     * 静态方法
     */
    static void test2() {//方法2...}
}
举报

相关推荐

0 条评论