溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時間:2020-07-18 10:29:40 來源:億速云 閱讀:139 作者:小豬 欄目:編程語言

這篇文章主要講解了JAVA中接口的定義和實現(xiàn)的詳細解析,內(nèi)容清晰明了,對此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會有幫助。

1.接口的定義

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

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

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

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

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

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

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

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

注意:

    與Java的類文件一樣,接口文件的文件名必須與接口名相同。

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

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

[修飾符] class <類名> [extends 父類名] [implements 接口列表]{
}

修飾符:可選參數(shù),用于指定類的訪問權(quán)限,可選值為public、abstractfinal。

類名:必選參數(shù),用于指定類的名稱,類名必須是合法的Java標識符。一般情況下,要求首字母大寫。

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

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

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

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

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

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

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

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

在類中實現(xiàn)接口時,方法的名字、返回值類型、參數(shù)的個數(shù)及類型必須與接口中的完全一致,并且必須實現(xiàn)接口中的所有方法。例如,編寫一個名稱為Cire的類,該類實現(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));
 }
}

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

看完上述內(nèi)容,是不是對JAVA中接口的定義和實現(xiàn)的詳細解析有進一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI