美文网首页
Java 接口的 default 与 static 关键字

Java 接口的 default 与 static 关键字

作者: 笔头还没烂 | 来源:发表于2023-04-06 23:48 被阅读0次
    1. 由于接口的特性,实现接口的类必须实现接口的所有抽象方法,否则只能设置该类也为抽象类。而对于只想有针对性地实现接口中的一部分方法而言,JDK1.8之后 接口提供了另一个解决方案: default 关键字
    • deault 关键字可用于在接口中修饰抽象方法。被 default 关键字修饰的抽象方法可以带方法体。

    • 实现该接口的类可以自主决定是否实现该 默认(default) 抽象方法。
      接口示例代码:

      //接口访问修饰符:public  默认
      public interface INet {
          //接口中抽象方法可以不写 abstract 关键字
          //接口的抽象方法访问修饰符如果什么都没加,系统默认会给它赋予 public 的访问权限。理由是:当子类实现该接口时,重写方法时系统也会默认将 public 添加上。如果将子类重写方法的 public 去掉,则系统会提示子类方法的访问权限必须大于或等于父类的方法。
          void network();
      
          //定义常量
          int TEMP=20;
      
          //default: 默认方法  可以带方法体
          default void connection() {
              System.out.println("我是接口中的默认方法");
          }
      }
      
    1. JDK 1.8 除了新增 default 关键字,同时也新增了 static 关键字,示例代码如下:

      //接口访问修饰符:public  默认
      public interface INet {
          //接口中抽象方法可以不写 abstract 关键字
          //接口的抽象方法访问修饰符如果什么都没加,系统默认会给它赋予 public 的访问权限。理由是:当子类实现该接口时,重写方法时系统也会默认将 public 添加上。如果将子类重写方法的 public 去掉,则系统会提示子类方法的访问权限必须大于或等于父类的方法。
          void network();
      
          //定义常量
          int TEMP=20;
      
          //default: 默认方法  可以带方法体  jdk 1.8 后新增
          default void connection() {
              System.out.println("我是接口中的默认链接");
          }
      
          //static: 静态方法  可以带方法体  jdk 1.8 后新增
          static void stop() {
              System.out.println("我是接口中的静态方法");
          }
      }
      

      实现该接口的示例代码如下:

      public class Computer implements INet{
      
          @Override
          public void network() {
              System.out.println("电脑可以上网");
          }
      
          @Override
          public void connection() {
              INet.super.connection();
              INet.stop();
              System.out.println(INet.TEMP);
          }
      }
      

      Ps:

      • 可以通过接口名.super (如 INet.super.connection( ))的形式来调用接口的成员方法;
      • 可以通过 接口名(如INet.stop( ))调用接口中的静态方法或常量;

    相关文章

      网友评论

          本文标题:Java 接口的 default 与 static 关键字

          本文链接:https://www.haomeiwen.com/subject/akcpddtx.html