记录一下对jdk8后的接口的一些理解(jdk8接口默认方法)

  本篇文章为你整理了记录一下对jdk8后的接口的一些理解(jdk8接口默认方法)的详细内容,包含有jdk8接口新特性 jdk8接口默认方法 jdk1.8接口的新特性 jdk8接口为何要有default 记录一下对jdk8后的接口的一些理解,希望能帮助你了解 记录一下对jdk8后的接口的一些理解。

  是为了在给接口扩展方法的时候,不会影响已经实现了该接口的类

  加入默认方法可以解决:在添加方法的同时,不影响现有的实现类

  下面演示了一下默认方法和静态方法的使用:

  

 

 

  interface A {

   * jdk8之后接口中可以加入默认、静态方法。

   * 是为了在给接口扩展方法的时候,不会影响已经实现了该接口的类。

   * 加入默认方法可以解决:在给接口添加方法的同时,不影响现有的实现类

   * jdk1.8前,接口中只能定义抽象方法和全局常量

   * 接口中抽象方法只能是public abstarct修饰,不能是protected修饰

   * 接口中只能定义全局常量

   void testAbatract();

   public static final String s = "a";

   * jdk1.8后,接口中加入了默认、静态方法

   * 定义默认方法

   * 接口中的默认方法可以用A.super.默认方法名来调用,或者实现类对象.默认方法名来调用

   default void getA() {

   System.out.println("接口A的默认方法");

   //定义静态方法

   static void getB() {

   System.out.println("接口A的静态方法");

  class B implements A {

   public static void main(String[] args) {

  // A.super.getA();

   B b = new B();

   //调用子类重写后的父类的默认方法

   b.getA();

   // 直接调用父类接口的静态方法

   //接口中的静态方法只能通过 接口名.静态方法名 来调用

   A.getB();

   @Override

   public void testAbatract() {

   public void getA() {

   A.super.getA(); // 子类显式地调用父类的默认方法

  

 

  
如果子类实现类该接口,那么子类可以覆盖接口的默认方法,也可以显式地调用父类的默认方法。

  以上就是记录一下对jdk8后的接口的一些理解(jdk8接口默认方法)的详细内容,想要了解更多 记录一下对jdk8后的接口的一些理解的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: