• Java重温学习笔记,Java8新特性:接口的默认方法


    简单说,默认方法就是接口可以有实现方法,而且不需要实现类去实现其方法。我们只需在方法名前面加个 default 关键字即可实现默认方法。

    一、默认方法语法格式如下:

    public interface Vehicle {
       default void print(){
          System.out.println("我是一辆车!");
       }
    }

    二、一个接口有默认方法,考虑这样的情况,一个类实现了多个接口,且这些接口有相同的默认方法,以下实例说明了这种情况的解决方法:

    复制代码
    public interface Vehicle {
       default void print(){
          System.out.println("我是一辆车!");
       }
    }
     
    public interface FourWheeler {
       default void print(){
          System.out.println("我是一辆四轮车!");
       }
    }
    复制代码

    第一个解决方案是创建自己的默认方法,来覆盖重写接口的默认方法:

    public class Car implements Vehicle, FourWheeler {
       default void print(){
          System.out.println("我是一辆四轮汽车!");
       }
    }

    第二种解决方案可以使用 super 来调用指定接口的默认方法:

    public class Car implements Vehicle, FourWheeler {
       public void print(){
          Vehicle.super.print();
       }
    }

    三、Java 8 的另一个特性是接口可以声明(并且可以提供实现)静态方法。示范:

    复制代码
    public class MyDemo {
       public static void main(String args[]){
          Vehicle vehicle = new Car();
          vehicle.print();
       }
    }
     
    interface Vehicle {
       default void print(){
          System.out.println("我是一辆车!");
       }
        
       static void blowHorn(){
          System.out.println("按喇叭!!!");
       }
    }
     
    interface FourWheeler {
       default void print(){
          System.out.println("我是一辆四轮车!");
       }
    }
     
    class Car implements Vehicle, FourWheeler {
       public void print(){
          Vehicle.super.print();
          FourWheeler.super.print();
          Vehicle.blowHorn();
          System.out.println("我是一辆汽车!");
       }
    }
    复制代码

    输出如下:

    %JAVA_HOME%injava "MyDemo" ...
    我是一辆车!
    我是一辆四轮车!
    按喇叭!!!
    我是一辆汽车!

     本文出自:

    https://www.runoob.com/java/java8-default-methods.html

  • 相关阅读:
    EXCEL每次打开文件都会出现一个空白sheet1窗口
    Python基础知识之面向对象编程
    Python基础知识之模块详解
    Python基础知识之正则表达式re模块
    Python基础知识之xml模块
    Python基础知识之json&pickle模块
    Python基础知识之装饰器
    VUE-02
    VUE
    虚拟环境的搭建
  • 原文地址:https://www.cnblogs.com/nayitian/p/14921031.html
Copyright © 2020-2023  润新知