美文网首页
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( ))调用接口中的静态方法或常量;

相关文章

  • 1.8中的default方法

    在java8以后,接口中可以添加使用default或者static修饰的方法。default修饰方法只能在接口中使...

  • Java8中的default方法

    在java8以后,接口中可以添加使用default或者static修饰的方法,在这里我们只讨论default方法,...

  • Java 8新特性(详解)

    1. 接口中的默认方法与静态方法 java 8中接口可以有实现方法,方法用default关键字修饰 当接口和子类同...

  • JDK1.8新特性

    1.default关键字 java里,接口是不能有方法的实现的。1.8通过default关键字可以实现 作用是什么...

  • Java 8中的改进的接口

    Java 8 允许在接口中定义默认方法.默认方法必须使用 default 修饰,该方法不能使用 static 修饰...

  • java8 新特性总结

    java8新特性 1.接口方法默认实现:java8中接口方法可以有默认实现,需要加入default关键字。 2.L...

  • Java8 default关键字

    在学习集合代码时发现在Iterable接口中使用了default关键字。 default关键字介绍 default...

  • java基础-day11-static关键字

    static关键字和接口 1. static关键字【重点】 1.1 static修饰静态成员变量 1.1.1 为什...

  • JDK1.8的新特性(Lambda表达式等)(一)

    一、接口的默认方法 Java 8允许在接口中添加非抽象的方法实现,只需要使用default关键字即可,这个特征又叫...

  • JAVA8十大新特性详解(精编)

    一、接口的默认方法 Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个...

网友评论

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

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