国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

詳解JAVA中接口的定義和接口的實(shí)現(xiàn)

瀏覽:6日期:2022-08-31 15:00:57

1.接口的定義

使用interface來(lái)定義一個(gè)接口。接口定義同類(lèi)的定義類(lèi)似,也是分為接口的聲明和接口體,其中接口體由常量定義和方法定義兩部分組成。定義接口的基本格式如下:

[修飾符] interface 接口名 [extends 父接口名列表]{public static final 常量;public abstract 方法;}

修飾符:可選,用于指定接口的訪問(wèn)權(quán)限,可選值為public。如果省略則使用默認(rèn)的訪問(wèn)權(quán)限。

接口名:必選參數(shù),用于指定接口的名稱(chēng),接口名必須是合法的Java標(biāo)識(shí)符。一般情況下,要求首字母大寫(xiě)。

extends 父接口名列表:可選參數(shù),用于指定要定義的接口繼承于哪個(gè)父接口。當(dāng)使用extends關(guān)鍵字時(shí),父接口名為必選參數(shù)。

方法:接口中的方法只有定義而沒(méi)有被實(shí)現(xiàn)。

例如,定義一個(gè)用于計(jì)算的接口,在該接口中定義了一個(gè)常量PI和兩個(gè)方法,具體代碼如下:

public interface CalInterface { final float PI=3.14159f;//定義用于表示圓周率的常量PI float getArea(float r);//定義一個(gè)用于計(jì)算面積的方法getArea() float getCircumference(float r);//定義一個(gè)用于計(jì)算周長(zhǎng)的方法getCircumference() }

注意:

與Java的類(lèi)文件一樣,接口文件的文件名必須與接口名相同。

2.接口的實(shí)現(xiàn)

接口在定義后,就可以在類(lèi)中實(shí)現(xiàn)該接口。在類(lèi)中實(shí)現(xiàn)接口可以使用關(guān)鍵字implements,其基本格式如下:

[修飾符] class <類(lèi)名> [extends 父類(lèi)名] [implements 接口列表]{}

修飾符:可選參數(shù),用于指定類(lèi)的訪問(wèn)權(quán)限,可選值為public、abstract和final。

類(lèi)名:必選參數(shù),用于指定類(lèi)的名稱(chēng),類(lèi)名必須是合法的Java標(biāo)識(shí)符。一般情況下,要求首字母大寫(xiě)。

extends 父類(lèi)名:可選參數(shù),用于指定要定義的類(lèi)繼承于哪個(gè)父類(lèi)。當(dāng)使用extends關(guān)鍵字時(shí),父類(lèi)名為必選參數(shù)。

implements 接口列表:可選參數(shù),用于指定該類(lèi)實(shí)現(xiàn)的是哪些接口。當(dāng)使用implements關(guān)鍵字時(shí),接口列表為必選參數(shù)。當(dāng)接口列表中存在多個(gè)接口名時(shí),各個(gè)接口名之間使用逗號(hào)分隔。

接口對(duì)于其聲明、變量和方法都做了許多限制,這些限制作為接口的特征歸納如下:

(1) 具有 public 訪問(wèn)控制符的接口,允許任何類(lèi)使用;沒(méi)有指定 public 的接口,其訪問(wèn)將局限于所屬的包。

(2) 方法的聲明不需要其他修飾符,在接口中聲明的方法,將隱式地聲明為公有的(public)和抽象的(abstract)。

(3) 在 Java 接口中聲明的變量其實(shí)都是常量,接口中的變量聲明,將隱式地聲明為 public、static 和 final,即常量,所以接口中定義的變量必須初始化。

(4) 接口沒(méi)有構(gòu)造方法,不能被實(shí)例化。

(5) 一個(gè)接口不能夠?qū)崿F(xiàn)另一個(gè)接口,但它可以繼承多個(gè)其他接口。子接口可以對(duì)父接口的方法和常量進(jìn)行重寫(xiě)

在類(lèi)中實(shí)現(xiàn)接口時(shí),方法的名字、返回值類(lèi)型、參數(shù)的個(gè)數(shù)及類(lèi)型必須與接口中的完全一致,并且必須實(shí)現(xiàn)接口中的所有方法。例如,編寫(xiě)一個(gè)名稱(chēng)為Cire的類(lèi),該類(lèi)實(shí)現(xiàn)5.7.1節(jié)中定義的接口Calculate,具體代碼如下:

public class Cire implements CalInterface{ public float getArea(float r) { float area=PI*r*r;//計(jì)算圓面積并賦值給變量area return area;//返回計(jì)算后的圓面積 } public float getCircumference(float r) { float circumference=2*PI*r; //計(jì)算圓周長(zhǎng)并賦值給變量circumference return circumference; //返回計(jì)算后的圓周長(zhǎng) } public static void main(String[] args) { Cire c = new Cire(); float f = c.getArea(2.0f); System.out.println(Float.toString(f)); }}

在類(lèi)的繼承中,只能做單重繼承,而實(shí)現(xiàn)接口時(shí),一次則可以實(shí)現(xiàn)多個(gè)接口,每個(gè)接口間使用逗號(hào)“,”分隔。這時(shí)就可能出現(xiàn)常量或方法名沖突的情況,解決該問(wèn)題時(shí),如果常量沖突,則需要明確指定常量的接口,這可以通過(guò)“接口名.常量”實(shí)現(xiàn)。如果出現(xiàn)方法沖突時(shí),則只要實(shí)現(xiàn)一個(gè)方法就可以了。下面通過(guò)一個(gè)具體的實(shí)例詳細(xì)介紹以上問(wèn)題的解決方法。

以上就是詳解JAVA中接口的定義和接口的實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于JAVA 接口定義和接口實(shí)現(xiàn)的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 莱西市| 鄢陵县| 垫江县| 齐河县| 自贡市| 霍山县| 建德市| 乌鲁木齐县| 白水县| 灌阳县| 白水县| 邵武市| 仁化县| 南涧| 招远市| 永仁县| 余姚市| 图们市| 建德市| 咸阳市| 湖北省| 文化| 安国市| 额济纳旗| 满城县| 德钦县| 抚州市| 庆阳市| 平邑县| 武安市| 宝丰县| 拜城县| 卢氏县| 邛崃市| 彰武县| 达拉特旗| 大足县| 咸宁市| 长顺县| 屏山县| 荔浦县|