JDK8新特性之接口默认方法与静态方法
生活随笔
收集整理的這篇文章主要介紹了
JDK8新特性之接口默认方法与静态方法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
接口默認方法與靜態(tài)方法
有這樣一些場景,如果一個接口要添加一個方法,那所有的接口實現(xiàn)類都要去實現(xiàn),而某些實現(xiàn)類根本就不需要實現(xiàn)這個方法也要寫一個空實現(xiàn),所以接口默認方法就是為了解決這個問題。
接口靜態(tài)方法類似于默認方法,但是我們不能在實現(xiàn)類中覆蓋它們,可以避免默認方法在實現(xiàn)類中被覆蓋實現(xiàn)。
之前講過的JDK8的list.foreache方法,看下源碼,其實也是java.lang.Iterable接口的默認方法。
default void forEach(Consumer<? super T> action) {Objects.requireNonNull(action);for (T t : this) {action.accept(t);} }簡單的例子
默認方法以 default修飾,靜態(tài)方法用 static。
public static void main(String[] args) {IUserInterface userInterface = new UserServiceImpl();System.out.println(userInterface.getDefaultUser1());System.out.println(IUserInterface.getDefaultUser2());}interface IUserInterface {default User getDefaultUser1() {return new User("Susan1", 11);}static User getDefaultUser2() {return new User("Susan2", 22);}}static class UserServiceImpl implements IUserInterface {}注意要點
1、接口默認方法、靜態(tài)方法可以有多個。
2、默認方法通過實例調用,靜態(tài)方法通過接口名調用。
3、 default默認方法關鍵字只能用在接口中。
4、默認方法可以被繼承,如果繼承了多個接口,多個接口都定義了多個同樣的默認方法,實現(xiàn)類需要重寫默認方法不然會報錯。
5、靜態(tài)方法不能被繼承及覆蓋,所以只被具體所在的接口調用。
總結
以上是生活随笔為你收集整理的JDK8新特性之接口默认方法与静态方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 身为Java程序员,这些开源工具你一定要
- 下一篇: Java 中初始化 List 集合的 6