天天看點

Java常見面試題:default關鍵字

default是在java8中引入的關鍵字,也可稱虛拟擴充方法。是指在接口内部包含了一些預設的方法實作(也就是接口中可以包含方法體,這打破了Java之前版本對接口的文法限制),進而使得接口在進行擴充的時候,不會破壞與接口相關的實作類代碼。

最初時代開始default基本是都是作為switch的語句聯合使用。

Java常見面試題:default關鍵字

内容是1

内容是2

預設值

是以最初在編寫switch的時候往往都會在每一個case之中追加一些break語句。

Java常見面試題:default關鍵字
Java常見面試題:default關鍵字
Java常見面試題:default關鍵字

後來從JDK1.8開始出現了一些新的文法環境。Lambda表達式出現,人們開始發現接口的問題。如果說你在最初某個項目的1.0版本裡面定義了一個接口的方法,但後來這個接口的子類特别多,大概有1000W個,在這樣的情況下,要對接口擴充一個方法(并且這個方法所有的子類的實作都一樣),那整個代碼的編寫就會異常繁瑣。在這樣的情況下,Java重新定義了接口,出現了default與static定義接口的方法。default方法就好比一個普通方法一樣,必須要有執行個體化對象,而static方法可以直接使用接口名稱進行調用。

Java常見面試題:default關鍵字
Java常見面試題:default關鍵字
Java常見面試題:default關鍵字

default在接口中的出現改變了傳統接口的實作模式,可以定義普通方法,如果某些方法對于所有的子類都具有同樣的實作,那麼可以減少定義,但是此類的形式暫時還未完全推廣開來,是以先作為了解即可。

更多專業知識,面試技巧就在面試一點通,持續更新中……

感謝浏覽~

本内容來源于

阿裡雲大學-Java面試技巧