java8新特性-預設方法
阿新 • • 發佈:2018-12-28
作為一個java程式猿,經常會被問基礎怎麼樣,對於這個問題,我理解的有兩方面:一是對於java基礎的理解和掌握,比如JDK的相關特性;二是工作的經歷,畢竟,語言程式設計是一門實戰性質的藝術,就算掌握了千萬理論,編寫不出實際的程式碼,等於扯淡。而且,隨著技術的革新,很多東西都不再是一成不變的,還記得剛出校門那會兒,面試官會問介面與類的區別啥的,大多人會回答:接口裡面的全是抽象方法。這個回答在現在看來,或許已經過時了,隨著JDK1.8的推出,接口裡面也是可以有方法實現的。所以,在這裡總結一下JDK1.8的幾個常用的新特性,以備後用。
java8預設方法通過default關鍵字實現,在介面中通過default修飾,從而實現在介面中有方法的目的。這個特性可以從某種程度上簡化程式碼量,比如有一個方法,所有的實現都相同,在java8以前,我們需要再介面的實現類中分別寫些相同的程式碼,在java8及以後,我們可以將這個方法抽出來,放在介面中通過default關鍵字修飾實現,從而簡化了程式碼。
舉個栗子:
定義介面Car,並實現通用方法engine
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 * @return14 */ 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 }
測試類:
1 public class Test { 2 3 public static void main(String[] args) { 4 Car car = newSuvCar(); 5 car.engine(); 6 car.type(); 7 } 8 }