詳解Java中接口的定義與實(shí)例代碼
Java中接口的定義詳解
1、定義接口
使用interface來定義一個接口。接口定義同類的定義類似,也是分為接口的聲明和接口體,其中接口體由常量定義和方法定義兩部分組成。定義接口的基本格式如下:
[修飾符] interface 接口名 [extends 父接口名列表]{ [public] [static] [final] 常量; [public] [abstract] 方法; }
修飾符:可選,用于指定接口的訪問權(quán)限,可選值為public。如果省略則使用默認(rèn)的訪問權(quán)限。
接口名:必選參數(shù),用于指定接口的名稱,接口名必須是合法的Java標(biāo)識符。一般情況下,要求首字母大寫。
extends 父接口名列表:可選參數(shù),用于指定要定義的接口繼承于哪個父接口。當(dāng)使用extends關(guān)鍵字時,父接口名為必選參數(shù)。
方法:接口中的方法只有定義而沒有被實(shí)現(xiàn)。
例如,定義一個用于計算的接口,在該接口中定義了一個常量PI和兩個方法,具體代碼如下:
public interface CalInterface { final float PI=3.14159f;//定義用于表示圓周率的常量PI float getArea(float r);//定義一個用于計算面積的方法getArea() float getCircumference(float r);//定義一個用于計算周長的方法getCircumference() }
注意:
與Java的類文件一樣,接口文件的文件名必須與接口名相同。
實(shí)現(xiàn)接口
接口在定義后,就可以在類中實(shí)現(xiàn)該接口。在類中實(shí)現(xiàn)接口可以使用關(guān)鍵字implements,其基本格式如下:
[修飾符] class <類名> [extends 父類名] [implements 接口列表]{
}
修飾符:可選參數(shù),用于指定類的訪問權(quán)限,可選值為public、abstract和final。
類名:必選參數(shù),用于指定類的名稱,類名必須是合法的Java標(biāo)識符。一般情況下,要求首字母大寫。
extends 父類名:可選參數(shù),用于指定要定義的類繼承于哪個父類。當(dāng)使用extends關(guān)鍵字時,父類名為必選參數(shù)。
implements 接口列表:可選參數(shù),用于指定該類實(shí)現(xiàn)的是哪些接口。當(dāng)使用implements關(guān)鍵字時,接口列表為必選參數(shù)。當(dāng)接口列表中存在多個接口名時,各個接口名之間使用逗號分隔。
在類中實(shí)現(xiàn)接口時,方法的名字、返回值類型、參數(shù)的個數(shù)及類型必須與接口中的完全一致,并且必須實(shí)現(xiàn)接口中的所有方法。例如,編寫一個名稱為Cire的類,該類實(shí)現(xiàn)5.7.1節(jié)中定義的接口Calculate,具體代碼如下:
public class Cire implements CalInterface { public float getArea(float r) { float area=PI*r*r;//計算圓面積并賦值給變量area return area;//返回計算后的圓面積 } public float getCircumference(float r) { float circumference=2*PI*r; //計算圓周長并賦值給變量circumference return circumference; //返回計算后的圓周長 } public static void main(String[] args) { Cire c = new Cire(); float f = c.getArea(2.0f); System.out.println(Float.toString(f)); } }
在類的繼承中,只能做單重繼承,而實(shí)現(xiàn)接口時,一次則可以實(shí)現(xiàn)多個接口,每個接口間使用逗號“,”分隔。這時就可能出現(xiàn)常量或方法名沖突的情況,解決該問題時,如果常量沖突,則需要明確指定常量的接口,這可以通過“接口名.常量”實(shí)現(xiàn)。如果出現(xiàn)方法沖突時,則只要實(shí)現(xiàn)一個方法就可以了。下面通過一個具體的實(shí)例詳細(xì)介紹以上問題的解決方法。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Java 高并發(fā)十: JDK8對并發(fā)的新支持詳解
本文主要介紹Java 高并發(fā)JDK8的支持,這里整理了詳細(xì)的資料及1. LongAdder 2. CompletableFuture 3. StampedLock的介紹,有興趣的小伙伴可以參考下2016-09-09使用IDEA搭建MyBatis環(huán)境詳細(xì)過程
這篇文章主要介紹了使用IDEA搭建MyBatis環(huán)境的相關(guān)知識,包括創(chuàng)建項目的過程及導(dǎo)入mybatis的核心jar包的詳細(xì)說明,本文通過圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-05-05SpringBoot之spring.factories的使用方式
這篇文章主要介紹了SpringBoot之spring.factories的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01RabbitMQ的Direct Exchange模式實(shí)現(xiàn)的消息發(fā)布案例(示例代碼)
本文介紹了RabbitMQ的DirectExchange模式下的消息發(fā)布和消費(fèi)的實(shí)現(xiàn),詳細(xì)說明了如何在DirectExchange模式中進(jìn)行消息的發(fā)送和接收,以及消息處理的基本方法,感興趣的朋友跟隨小編一起看看吧2024-09-09