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