最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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ù)。

方法:接口中的方法只有定義而沒有被實現(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標(biāo)識符。一般情況下,要求首字母大寫。

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

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

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

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

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

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

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

(5)  一個接口不能夠?qū)崿F(xiàn)另一個接口,但它可以繼承多個其他接口。子接口可以對父接口的方法和常量進(jì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)一個方法就可以了。下面通過一個具體的實例詳細(xì)介紹以上問題的解決方法。

以上就是詳解JAVA中接口的定義和接口的實現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于JAVA 接口定義和接口實現(xiàn)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java創(chuàng)建線程的七種方法總結(jié)(全網(wǎng)最全面)

    Java創(chuàng)建線程的七種方法總結(jié)(全網(wǎng)最全面)

    線程是Java中的基本執(zhí)行單元,它允許程序在同一時間執(zhí)行多個任務(wù),下面這篇文章主要給大家總結(jié)介紹了關(guān)于Java創(chuàng)建線程的七種方法,文中通過實例代碼將這七種方法介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Spring JPA聯(lián)表查詢之OneToOne源碼詳解

    Spring JPA聯(lián)表查詢之OneToOne源碼詳解

    這篇文章主要為大家介紹了Spring JPA聯(lián)表查詢之OneToOne源碼詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 深入了解JAVA Jersey框架

    深入了解JAVA Jersey框架

    這篇文章主要介紹了JAVA Jersey的概念以及使用方法,文中講解非常詳細(xì),對大家的學(xué)習(xí)工作有所幫助,感興趣的朋友可以參考下
    2020-06-06
  • Springboot實現(xiàn)Shiro整合JWT的示例代碼

    Springboot實現(xiàn)Shiro整合JWT的示例代碼

    這篇文章主要介紹了Springboot實現(xiàn)Shiro整合JWT的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Spring RestTemplate的使用與踩坑

    Spring RestTemplate的使用與踩坑

    RestTemplate是一個執(zhí)行HTTP請求的同步阻塞式工具類,它僅僅只是在HTTP客戶端庫基礎(chǔ)上,封裝了更加簡單易用的模板方法API,方便程序員利用已提供的模板方法發(fā)起網(wǎng)絡(luò)請求和處理,能很大程度上提升我們的開發(fā)效率
    2023-02-02
  • java類中元素初始化順序詳解

    java類中元素初始化順序詳解

    對于靜態(tài)變量、靜態(tài)初始化塊、變量、初始化塊、構(gòu)造器,它們的初始化順序依次是(靜態(tài)變量、靜態(tài)初始化塊)>(變量、初始化塊)>構(gòu)造器
    2013-08-08
  • 詳解SpringSecurity中的Authentication信息與登錄流程

    詳解SpringSecurity中的Authentication信息與登錄流程

    這篇文章主要介紹了SpringSecurity中的Authentication信息與登錄流程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • SpringBoot利用AOP實現(xiàn)一個日志管理詳解

    SpringBoot利用AOP實現(xiàn)一個日志管理詳解

    目前有這么個問題,有兩個系統(tǒng)CSP和OMS,這倆系統(tǒng)共用的是同一套日志操作:Log;目前想?yún)^(qū)分下這倆系統(tǒng)的日志操作,那沒辦法了,只能重寫一份Log的日志操作。本文就將利用AOP實現(xiàn)一個日志管理,需要的可以參考一下
    2022-09-09
  • spring?@Primary-在spring中的使用方式

    spring?@Primary-在spring中的使用方式

    這篇文章主要介紹了spring?@Primary-在spring中的使用方式,具有很好的參考價值,希望對大家有所幫助。
    2022-01-01
  • 詳解Spring Security中獲取當(dāng)前登錄用戶的詳細(xì)信息的幾種方法

    詳解Spring Security中獲取當(dāng)前登錄用戶的詳細(xì)信息的幾種方法

    本文主要介紹了詳解Spring Security中獲取當(dāng)前登錄用戶的詳細(xì)信息的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05

最新評論

达日县| 铜川市| 夏津县| 会宁县| 田阳县| 包头市| 岢岚县| 西宁市| 神木县| 榆林市| 修文县| 札达县| 双辽市| 五家渠市| 木里| 雷州市| 枣强县| 万山特区| 凤凰县| 镶黄旗| 克山县| 庆阳市| 亳州市| 太白县| 乌海市| 湘潭市| 湟中县| 南皮县| 滨州市| 定陶县| 东丰县| 吉安县| 南澳县| 邹平县| 曲阜市| 林芝县| 红河县| 东城区| 盐山县| 安顺市| 阜新市|