欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2020年06月05日 16:33:55   作者:易小川  
這篇文章主要介紹了JAVA中接口的定義和接口的實(shí)現(xiàn),文中講解非常細(xì)致,配合代碼更好的幫大家學(xué)習(xí)參考,感興趣的朋友可以了解下

1.接口的定義

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

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

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

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

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的類文件一樣,接口文件的文件名必須與接口名相同。

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

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

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

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

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

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

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

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

(1)  具有 public 訪問(wèn)控制符的接口,允許任何類使用;沒(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)行重寫

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

在類的繼承中,只能做單重繼承,而實(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)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • java GUI實(shí)現(xiàn)加法計(jì)算器

    java GUI實(shí)現(xiàn)加法計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了java GUI實(shí)現(xiàn)加法計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • Java使用DSA密鑰對(duì)生成XML簽名的方法

    Java使用DSA密鑰對(duì)生成XML簽名的方法

    這篇文章主要介紹了Java使用DSA密鑰對(duì)生成XML簽名的方法,實(shí)例分析了java使用DSA密鑰對(duì)生成XML簽名的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • java并發(fā)編程之ThreadLocal詳解

    java并發(fā)編程之ThreadLocal詳解

    在鎖的使用中會(huì)導(dǎo)致運(yùn)行效率降低,ThreadLocal的使用徹底避免對(duì)共享資源的競(jìng)爭(zhēng),同時(shí)又可以不影響效率。本文詳細(xì)講解了ThreadLocal,需要了解的小伙伴可以看一看這篇文章
    2021-08-08
  • Java基礎(chǔ)之java泛型通配符詳解

    Java基礎(chǔ)之java泛型通配符詳解

    Java 泛型(generics)是 JDK 5 中引入的一個(gè)新特性, 泛型提供了編譯時(shí)類型安全檢測(cè)機(jī)制,該機(jī)制允許開(kāi)發(fā)者在編譯時(shí)檢測(cè)到非法的類型,今天通過(guò)本文給大家介紹java泛型通配符的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2021-07-07
  • 老生常談java中的Future模式

    老生常談java中的Future模式

    下面小編就為大家?guī)?lái)一篇老生常談java中的Future模式。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • Spring聲明式事務(wù)和@Aspect的攔截順序問(wèn)題的解決

    Spring聲明式事務(wù)和@Aspect的攔截順序問(wèn)題的解決

    本篇文章主要介紹了Spring聲明式事務(wù)和@Aspect的攔截順序問(wèn)題的解決,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • Java發(fā)送post方法詳解

    Java發(fā)送post方法詳解

    這篇文章主要介紹了Java發(fā)送post方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Java編寫程序之輸入一個(gè)數(shù)字實(shí)現(xiàn)該數(shù)字階乘的計(jì)算

    Java編寫程序之輸入一個(gè)數(shù)字實(shí)現(xiàn)該數(shù)字階乘的計(jì)算

    這篇文章主要介紹了Java編寫程序之輸入一個(gè)數(shù)字實(shí)現(xiàn)該數(shù)字階乘的計(jì)算,本文通過(guò)實(shí)例代碼給大家介紹的非常想詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Springboot集成magic-api的詳細(xì)過(guò)程

    Springboot集成magic-api的詳細(xì)過(guò)程

    這篇文章主要介紹了Springboot集成magic-api的相關(guān)知識(shí),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • 淺談Java代碼的 微信長(zhǎng)鏈轉(zhuǎn)短鏈接口使用 post 請(qǐng)求封裝Json(實(shí)例)

    淺談Java代碼的 微信長(zhǎng)鏈轉(zhuǎn)短鏈接口使用 post 請(qǐng)求封裝Json(實(shí)例)

    下面小編就為大家?guī)?lái)一篇淺談Java代碼的 微信長(zhǎng)鏈轉(zhuǎn)短鏈接口使用 post 請(qǐng)求封裝Json(實(shí)例)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07

最新評(píng)論