您好,歡迎來(lái)到賦能網(wǎng)!

java接口如何定義?java接口能干嘛?

賦能網(wǎng) 2023-05-09 63

接口在java編程語(yǔ)言中是一個(gè)抽象類型,是抽象方法的集合,接口通常以interface來(lái)聲明,接口無(wú)法被實(shí)例化,但是可以被實(shí)現(xiàn),那java接口如何定義?下面來(lái)我們就來(lái)給大家講解一下。

Java 接口的定義方式與類基本相同,不過(guò)接口定義使用的關(guān)鍵字是 interface,接口定義的語(yǔ)法格式如下:

[public] interface interface_name[extends interface1_name[, interface2_name, …]]
{
    // 接口體,其中可以包含定義常量和聲明方法
[public][static][final] type constant_name = value; // 定義常量
[public][abstract] returnType method_name(parameter_list); // 聲明方法
}

對(duì)以上語(yǔ)法的說(shuō)明如下:

public 表示接口的修飾符,當(dāng)沒(méi)有修飾符時(shí),則使用默認(rèn)的修飾符,此時(shí)該接口的訪問(wèn)權(quán)限僅局限于所屬的包;

interface_name 表示接口的名稱。接口名應(yīng)與類名采用相同的命名規(guī)則,即如果僅從語(yǔ)法角度來(lái)看,接口名只要是合法的標(biāo)識(shí)符即可。如果要遵守 Java 可讀性規(guī)范,則接口名應(yīng)由多個(gè)有意義的單詞連綴而成,每個(gè)單詞首字母大寫(xiě),單詞與單詞之間無(wú)需任何分隔符。

extends 表示接口的繼承關(guān)系;

interface1_name 表示要繼承的接口名稱;

constant_name 表示變量名稱,一般是 static 和 final 型的;

returnType 表示方法的返回值類型;

parameter_list 表示參數(shù)列表,在接口中的方法是沒(méi)有方法體的。

注意:一個(gè)接口可以有多個(gè)直接父接口,但接口只能繼承接口,不能繼承類。

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

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

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

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

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

public interface A
{
    publicA()
    {
        …} // 編譯出錯(cuò),接口不允許定義構(gòu)造方法
}

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

public interface StudentInterface extends PeopleInterface
{
    // 接口 StudentInterface 繼承 PeopleInterface
    int age = 25; // 常量age重寫(xiě)父接口中的age常量
    void getInfo(); // 方法getInfo()重寫(xiě)父接口中的getInfo()方法
}

例如,定義一個(gè)接口 MyInterface,并在該接口中聲明常量和方法,如下:

public interface MyInterface
{ // 接口myInterface
    String name; // 不合法,變量name必須初始化
    int age = 20; // 合法,等同于 public static final int age = 20;
    void getInfo(); // 方法聲明,等同于 public abstract void getInfo();
}

java接口能干嘛?

1、有利于對(duì)代碼進(jìn)行維護(hù):比如你要做一個(gè)畫(huà)板程序,其中里面有一個(gè)面板類,主要負(fù)責(zé)繪畫(huà)功能,然后你就這樣定義了這個(gè)類??墒窃诓痪脤?lái),你突然發(fā)現(xiàn)現(xiàn)有的類已經(jīng)不能夠滿足需要,然后你又要重新設(shè)計(jì)這個(gè)類,更糟糕是你可能要放棄這個(gè)類,那么其他地方可能有引用他,這樣修改起來(lái)很麻煩。如果你一開(kāi)始定義一個(gè)接口,把繪制功能放在接口里,然后定義類時(shí)實(shí)現(xiàn)這個(gè)接口,然后你只要用這個(gè)接口去引用實(shí)現(xiàn)它的類就行了,以后要換的話只不過(guò)是引用另一個(gè)類而已,這樣就達(dá)到維護(hù)、拓展的方便性。

2、保證代碼的安全和嚴(yán)密:一個(gè)好的程序一定符合高內(nèi)聚低耦合的特征,那么實(shí)現(xiàn)低耦合,定義接口是一個(gè)很好的方法,能夠讓系統(tǒng)的功能較好地實(shí)現(xiàn),而不涉及任何具體的實(shí)現(xiàn)細(xì)節(jié)。這樣就比較安全、嚴(yán)密一些,這一思想一般在軟件開(kāi)發(fā)中較為常見(jiàn)。

除了以上之外,java接口還保證了代碼的簡(jiǎn)單、規(guī)范性,這使java人員開(kāi)發(fā)起來(lái)更加節(jié)省時(shí)間。最后大家如果想要了解更多java初識(shí)知識(shí),敬請(qǐng)關(guān)注賦能網(wǎng)。


本文鏈接:

本文章“java接口如何定義?java接口能干嘛?”已幫助 63 人

免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識(shí)產(chǎn)權(quán)侵權(quán)的法律責(zé)任!

本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開(kāi)班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢熱線:4008-569-579

如果本頁(yè)不是您要找的課程,您也可以百度查找一下: