1. 程式人生 > >java8新特性-預設方法

java8新特性-預設方法

作為一個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      * @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 }

測試類:

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 }