java基礎之接口組成更新的實現(xiàn)
1.1 接口組成更新概述
- 接口的組成
- 常量:
public static final
- 抽象方法:
public abstract
- 默認方法(Java 8)
- 靜態(tài)方法(Java 8)
- 私有方法(Java 9)
- 常量:
1.2 接口中默認方法(JDK8)
我們都知道,一個類實現(xiàn)一個接口,就要重寫這個接口中的所有抽象方法。但現(xiàn)在接口中新增了一個方法,實現(xiàn)這個接口的類不想重寫這個方法怎么辦?這時就可以使用接口中默認方法,它不強制被重寫,而且還可以提供方法體。
- 接口中默認方法的定義格式:
- 格式:
public default 返回值類型 方法名(參數(shù)列表){}
- 范例:
public default void show(){}
- 格式:
- 接口中默認方法的注意事項:
- 默認方法不是抽象方法,所以不強制被重寫。但是可以被重寫,重寫的時候去掉default關鍵字
- public可以省略,default不能省略:
default void show(){}
1.3 接口中靜態(tài)方法(JDK8)
接口中靜態(tài)方法的定義格式:
- 格式:
public static 返回值類型 方法名(參數(shù)列表){}
- 范例:
public static void show(){}
- 格式:
接口中靜態(tài)方法的注意事項:
- 靜態(tài)方法只能通過接口名調(diào)用, 不能通過實現(xiàn)類名或者對象名調(diào)用
- public可以省略, static不能省略:
static void show(){}
接口
package test; public interface Inter { void show(); default void method() { System.out.println("默認方法"); } // public static void test(){ // System.out.println("靜態(tài)方法"); // } static void test(){ System.out.println("靜態(tài)方法"); } }
- 實現(xiàn)類
package test; public class InterImpl implements Inter{ @Override public void show() { System.out.println("show方法"); } }
- 測試類
package test; public class Demo { public static void main(String[] args) { Inter i = new InterImpl(); i.show(); //show方法 i.method(); // // i.test(); //報錯 Inter.test(); //靜態(tài)方法,接口名調(diào)用靜態(tài)方法 } }
1.4 接口中私有方法(JDK9)
Java 9 中新增了帶方法體的私有方法,這其實在 Java 8 中就埋下了伏筆:Java 8 允許在接口中定義帶方法體的默認方法和靜態(tài)方法。這樣可能就會引發(fā)一個問題:當兩個默認方法或者靜態(tài)方法中包含一段相同的代碼實現(xiàn)時,程序必然考慮將這段實現(xiàn)代碼抽取成一個共性方法,而這個共性方法是不需要讓別人使用的,因此用私有給隱藏起來,這就是 Java 9 增加私有方法的必然性 。
- 接口中私有方法的定義格式:
- 格式1(非靜態(tài)):
private 返回值類型 方法名(參數(shù)列表){}
- 范例1:
private void show() {}
- 格式2(靜態(tài)):
private static 返回值類型 方法名(參數(shù)列表){}
- 范例2:
private static void method() {}
- 格式1(非靜態(tài)):
- 接口中私有方法的注意事項:
- 默認方法可以調(diào)用私有的靜態(tài)方法和非靜態(tài)方法
- 靜態(tài)方法只能調(diào)用私有的靜態(tài)方法
package test; public interface Inter { default void show1() { System.out.println("show1開始執(zhí)行"); // System.out.println("初級工程師"); // System.out.println("中級工程師"); // System.out.println("高級工程師"); // show(); method(); System.out.println("show1結(jié)束"); } static void method1() { System.out.println("method1開始執(zhí)行"); // System.out.println("初級工程師"); // System.out.println("中級工程師"); // System.out.println("高級工程師"); method(); System.out.println("method1結(jié)束"); } private void show(){ System.out.println("初級工程師"); System.out.println("中級工程師"); System.out.println("高級工程師"); } private static void method(){ System.out.println("初級工程師"); System.out.println("中級工程師"); System.out.println("高級工程師"); } }
到此這篇關于java基礎之接口組成更新的實現(xiàn)的文章就介紹到這了,更多相關java 接口組成更新內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
eclipse輸出Hello World的實現(xiàn)方法
這篇文章主要介紹了eclipse輸出Hello World的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11SpringCloud超詳細講解負載均衡組件Ribbon源碼
在微服務中,對服務進行拆分之后,必然會帶來微服務之間的通信需求,而每個微服務為了保證高可用性,又會去部署集群,那么面對一個集群微服務進行通信的時候,如何進行負載均衡也是必然需要考慮的問題2022-07-07JAVA8妙用Optional解決判斷Null為空的問題方法
本文主要介紹了JAVA8妙用Optional解決判斷Null為空的問題方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10