Java8新特性——接口默認方法

Java 8 新增了接口的默認方法。java

簡單說,默認方法就是接口能夠有實現方法,並且不須要實現類去實現其方法。編程

咱們只需在方法名前面加個default關鍵字便可實現默認方法。框架

爲何要有這個特性?ide

首先,以前的接口是個雙刃劍,好處是面向抽象而不是面向具體編程,缺陷是,當須要修改接口時候,須要修改所有實現該接口的類,目前的java 8以前的集合框架沒有foreach方法,一般能想到的解決辦法是在JDK裏給相關的接口添加新的方法及實現。然而,對於已經發布的版本,是無法在給接口添加新方法的同時不影響已有的實現。因此引進的默認方法。他們的目的是爲了解決接口的修改與現有的實現不兼容的問題。spa

實例演示:code

 1 /**
 2  * @author jiaqing.xu@hand-china.com
 3  * @version 1.0
 4  * @name
 5  * @description
 6  * @date 2018/7/15
 7  */
 8 public interface Vehicle {
 9     //接口中默認方法
10     default void print() {
11         System.out.println("我是一輛車!");
12     }
13     //接口中靜態方法
14     static void blowHorn() {
15         System.out.println("按喇叭!");
16     }
17 }
 1 /**
 2  * @author jiaqing.xu@hand-china.com
 3  * @version 1.0
 4  * @name
 5  * @description
 6  * @date 2018/7/15
 7  */
 8 public interface FourWheeler {
 9 
10     default void print(){
11         System.out.println("我是一輛四輪車!");
12     }
13 }
/**
 * @author jiaqing.xu@hand-china.com
 * @version 1.0
 * @name
 * @description
 * @date 2018/7/15
 */
public class Car implements FourWheeler,Vehicle{
    @Override
    public void print(){
        //我是一輛車!
        Vehicle.super.print();
        //我是一輛四輪車!
        FourWheeler.super.print();
        //按喇叭!
        Vehicle.blowHorn();
        //我是一輛Car汽車!
        System.out.println("我是一輛Car汽車!");
    }
}
 1 /**
 2  * @author jiaqing.xu@hand-china.com
 3  * @version 1.0
 4  * @name
 5  * @description
 6  * @date 2018/7/15
 7  */
 8 public class Test4 {
 9     public static void main(String args[]) {
10         //建立car的實例
11         FourWheeler fourWheeler = new Car();
12         //執行打印方法
13         fourWheeler.print();
14     }
15 }

相關文章
相關標籤/搜索