java8新特性-默認方法

做爲一個java程序猿,常常會被問基礎怎麼樣,對於這個問題,我理解的有兩方面:一是對於java基礎的理解和掌握,好比JDK的相關特性;二是工做的經歷,畢竟,語言編程是一門實戰性質的藝術,就算掌握了千萬理論,編寫不出實際的代碼,等於扯淡。並且,隨着技術的革新,不少東西都再也不是一成不變的,還記得剛出校門那會兒,面試官會問接口與類的區別啥的,大多人會回答:接口裏面的全是抽象方法。這個回答在如今看來,或許已通過時了,隨着JDK1.8的推出,接口裏面也是能夠有方法實現的。因此,在這裏總結一下JDK1.8的幾個經常使用的新特性,以備後用。java

java8默認方法經過default關鍵字實現,在接口中經過default修飾,從而實如今接口中有方法的目的。這個特性能夠從某種程度上簡化代碼量,好比有一個方法,全部的實現都相同,在java8之前,咱們須要再接口的實現類中分別寫些相同的代碼,在java8及之後,咱們能夠將這個方法抽出來,放在接口中經過default關鍵字修飾實現,從而簡化了代碼。面試

舉個栗子:編程

定義接口Car,並實現通用方法engineide

 1 public interface Car {
 2     
 3     /**
 4      * @Description: Car引擎
 5      * @return
 6      */
 7     public default void engine() {
 8         System.out.println("all car must have a engine");
 9     }
10 
11     /**
12      * @Description: Car類型
13      * @return
14      */
15     public void type();
16 }

實現類:測試

1 public class SuvCar implements Car {
2 
3     @Override
4     public void type() {
5         System.out.println("I'm a suv car");
6     }
7 }

測試類:spa

1 public class Test {
2 
3     public static void main(String[] args) {
4         Car car = new SuvCar();
5         car.engine();
6         car.type();
7     }
8 }
相關文章
相關標籤/搜索