詳解java接口(interface)在不同JDK版本中的變化
JDK1.7以及以前:
接口(interface)在JDK7及之前的版本對(duì)接口的要求:
接口定義:
- 使用 interface 關(guān)鍵字 。
- 接口中的 所有 成員變量 都默認(rèn)是由 public static final 修飾的。
- 接口中的 所有方法 都默認(rèn)是由 public abstract 修飾的。也可以使用 protected ,但不能用 private 。
- 接口中的 所有方法 都沒(méi)有方法體。
- 接口沒(méi)有構(gòu)造方法。因?yàn)闃?gòu)造方法用于創(chuàng)建對(duì)象。
- 實(shí)現(xiàn)接口的類 必須提供接口中所有方法的具體實(shí)現(xiàn)內(nèi)容。
可聲明 靜態(tài)常量、屬性和 抽象方法:
全局變量( public static final )和 抽像方法( public abstract method() )
public interface MyInterface{
static final int x=0;
int y=0; //默認(rèn)static final
public abstract void method1();
abstract void method2();
void method3(); //默認(rèn) public abstract
}
JDK8:
在 JDK7 的基礎(chǔ)上可以聲明 靜態(tài)方法 和 默認(rèn)方法,必須寫方法體
public interface MyInterface{
static final int x=0;
int y=0; //默認(rèn)static final
public abstract void method1();
abstract void method2();
void method3() ; //默認(rèn) public abstract
//JDK8:靜態(tài)方法
public static void method4() {
System.out.println("靜態(tài)方法");
}
//JDK8:默認(rèn)方法
default void method5() {
System.out.println("默認(rèn)方法");
}
}
JDK9 :
基于 JDK8 增加了私有靜態(tài)方法的聲明
//JDK8: private static 方法
private static void method6(){
System.out.println("private method6");
}
注意:
- 實(shí)現(xiàn)接口的類(非抽象類)必須實(shí)現(xiàn)接口中所有的抽象方法;
- 接口中的靜態(tài)方法,只能使用接口名稱調(diào)用 ;
- 接口中 default 方法屬于實(shí)現(xiàn)接口類的對(duì)象方法,可以重寫 ;
- 接口中的 private static 方法只能在接口內(nèi)調(diào)用 ;
- 繼承的接口實(shí)現(xiàn)子接口的抽象方法需要加 dafault 。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java16 JDK安裝并設(shè)置環(huán)境變量的方法步驟
- 教你用JDK編譯Java文件的方法
- 解決IDEA?JDK9沒(méi)有module-info.java的問(wèn)題
- 關(guān)于java中多個(gè)JDK和切換版本介紹
- Java9版本新特性同一個(gè)Jar支持多JDK版本運(yùn)行
- java底層JDK?Logging日志模塊處理細(xì)節(jié)深入分析
- 2021最新Java?JDK1.8的安裝超詳細(xì)教程
- Tomcat?8.5?+mysql?5.7+jdk1.8開發(fā)JavaSE的金牌榜小項(xiàng)目
- Java中的OpenJDK使用原理
- Java?JDK內(nèi)置常用接口和深淺拷貝
相關(guān)文章
在Mybatis @Select注解中實(shí)現(xiàn)拼寫動(dòng)態(tài)sql
這篇文章主要介紹了在Mybatis @Select注解中實(shí)現(xiàn)拼寫動(dòng)態(tài)sql,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
Java編程中利用InetAddress類確定特殊IP地址的方法
這篇文章主要介紹了Java編程中利用InetAddress類確定特殊IP地址的方法,InetAddress類是Java網(wǎng)絡(luò)編程中一個(gè)相當(dāng)實(shí)用的類,需要的朋友可以參考下2015-11-11
Java編程實(shí)現(xiàn)軌跡壓縮算法開放窗口實(shí)例代碼
這篇文章主要介紹了Java編程實(shí)現(xiàn)軌跡壓縮算法開放窗口實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-11-11
解決Spring security5.5.7報(bào)錯(cuò)Encoded password does
這篇文章主要介紹了解決Spring security5.5.7出現(xiàn)Encoded password does not look like BCrypt異常問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
解決程序包org.springframework.test.context不存在
這篇文章主要介紹了解決程序包org.springframework.test.context不存在的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
java使用Nagao算法實(shí)現(xiàn)新詞發(fā)現(xiàn)、熱門詞的挖掘
這篇文章主要介紹了java使用Nagao算法實(shí)現(xiàn)新詞發(fā)現(xiàn)、熱門詞的挖掘的思路和詳細(xì)代碼,需要的朋友可以參考下2015-07-07

