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

java中接口(interface)及使用方法示例

 更新時(shí)間:2017年11月30日 11:42:33   作者:Lei_Lew  
這篇文章主要介紹了java中接口(interface)及使用方法示例,涉及接口定義的簡單介紹以及Java語言代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下。

1、接口:一種把類抽象的更徹底,接口里只能包含抽象方法的“特殊類”。接口不關(guān)心類的內(nèi)部狀態(tài)數(shù)據(jù),定義的是一批類所遵守的規(guī)范。(它只規(guī)定這批類里必須提供某些方法,提供這些方法就可以滿足實(shí)際要求)。

在JAVA編程語言中是一個(gè)抽象類型,是抽象方法的集合,接口通常以interface來聲明。一個(gè)類通過繼承接口的方式,從而來繼承接口的抽象方法。

接口并不是類,編寫接口的方式和類很相似,但是它們屬于不同的概念。類描述對象的屬性和方法。接口則包含類要實(shí)現(xiàn)的方法。

除非實(shí)現(xiàn)接口的類是抽象類,否則該類要定義接口中的所有方法。

接口無法被實(shí)例化,但是可以被實(shí)現(xiàn)。一個(gè)實(shí)現(xiàn)接口的類,必須實(shí)現(xiàn)接口內(nèi)所描述的所有方法,否則就必須聲明為抽象類。另外,在Java中,接口類型可用來聲明一個(gè)變量,他們可以成為一個(gè)空指針,或是被綁定在一個(gè)以此接口實(shí)現(xiàn)的對象。

定義:【修飾符】interface接口名extends父接口1,賦接口2,.......//不用extends父接口1...就是定義接口
{
//零到多個(gè)常量定義......
//零到多個(gè)抽象實(shí)例方法定義.....
}

【語法說明】:1、修飾符可以是public或者省略,如果省略public訪問控制符,則是包訪問權(quán)限。

2、接口里所有的成員都是public修飾,因?yàn)榻涌谑枪驳?,所有類都能訪問的。接口里屬性默認(rèn)的修飾為:publicstaticfinal,不管屬性前面寫沒寫都會默認(rèn)加上,同樣方法的默認(rèn)修飾為:publicabstract,內(nèi)部類:publicstatic。都會默認(rèn)加上。

3、成員里面不能有構(gòu)造器,不能有初始化塊。

4、一個(gè)java源文件里最多只能定義一個(gè)接口,因?yàn)槠涫莗ublic修飾的,存儲的名字必須和public修飾的類的名字一樣,而接口可以看成一個(gè)特殊的類。

2、接口的繼承:一個(gè)接口可以有多個(gè)直接父接口,接口只能繼承接口,不能繼承類。

【注意點(diǎn)】:a、子接口繼承父接口,將會獲得父接口里定義的所有抽象方法,常量屬性,內(nèi)部類等定義。

3、接口的使用:語法:【修飾符】class類名extends父類implements接口1,接口2......{類體}。

【注意事項(xiàng)】

a、說明:一個(gè)類可以同時(shí)繼承一個(gè)父類,和多個(gè)接口,只是extends必須放置implements之后。

b、接口不能創(chuàng)建實(shí)例,但是可以聲明變量,但其一定是引用到了其實(shí)現(xiàn)類的對象。

c、主要用途就是被類實(shí)現(xiàn)。

d、實(shí)現(xiàn)的方法:利用implements關(guān)鍵字

e、一個(gè)類繼承了一個(gè)接口之后,必須完全實(shí)現(xiàn)這些接口里所定義的全部抽象方法(也就是要在子類里面重寫這些類方法),否則,如果沒有完全實(shí)現(xiàn),那么此類也只能定義成抽象類。

f、重寫接口方法時(shí),修飾符只能比父類更大,或者相等,所以其也必須是public修飾符。

g、所有接口類型的變量都可以直接賦給Object類型的變量。

貼上示例代碼(引用于李剛的瘋狂java):

//定義一個(gè)接口Output 
 interface Output 
{ 
  //接口里只能把屬性定義成常量 
  int MAX_CACHE_LINE = 50;//主要是定義存儲空間 
  //接口里定義的只能是public的抽象方法 
  void out(); 
  void getData(String msg);    
} 
//定義一個(gè)接口Product 
interface Product 
{ 
  int getProduceTime(int a); 
} 
 
//讓printer類實(shí)現(xiàn)定義的接口 
public class Printer implements Output,Product 
{ 
  private String [] printData = new String[MAX_CACHE_LINE]; 
  private int dataNum =0; 
  public void out()//重寫父接口Output的方法 
  { 
    while(dataNum>0) 
    { 
      System.out.println("打印機(jī)打印"+printData[0]); 
      System.arraycopy(printData,1,printData,0,--dataNum); 
    } 
  } 
  public void getData(String msg)//重寫父接口Output的方法 
  { 
    if(dataNum>=MAX_CACHE_LINE) 
    { 
      System.out.println("已滿");     
    } 
    else  
    { 
      printData[dataNum++] = msg; 
    } 
  } 
  public int getProduceTime(int a)//重寫父接口Product的方法 
  { 
    return a = a; 
  } 
  public static void main(String[] args) 
  { 
    //父接口可聲明變量,但是不能創(chuàng)建實(shí)例,多態(tài):聲明的是Output,但是創(chuàng)建的實(shí)例是Printer 
    Output O= new Printer(); 
    O.getData("xiuxiu"); 
    O.out();//直接調(diào)用輸出的方法 
     
    //父接口可聲明變量,但是不能創(chuàng)建實(shí)例,多態(tài):聲明的是Output,但是創(chuàng)建的實(shí)例是Printer 
    Product p = new Printer(); 
    System.out.println(p.getProduceTime(82)); 
     
    //所有接口類型的引用變量都可以直接賦值給Object類型的變量 
    Object obj = p; 
    Object obj1 = O; 
  
  } 
   
} 

 4、抽象類和接口的異同:

相同:

1、都有抽象方法。

2、都不能創(chuàng)建實(shí)例。

3、子類繼承其后都必須全部實(shí)現(xiàn)其內(nèi)的抽象方法,如果沒有全部實(shí)現(xiàn)的話,類只能定義成抽象類。

不相同:

1、接口里只能有抽象方法,抽象類里可以有普通方法。

2、接口類里的屬性默認(rèn)有修飾語publicstaticfinal,但是抽象類中的屬性可以是普通的。

3、接口沒有初始化塊,抽象類里有。

4、接口可以有多個(gè)父接口,但是抽象類只能有一個(gè)父類。

總結(jié)

以上就是本文關(guān)于java中接口(interface)及使用方法示例的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。

相關(guān)文章

  • Maven多個(gè)項(xiàng)目實(shí)現(xiàn)聚合過程解析

    Maven多個(gè)項(xiàng)目實(shí)現(xiàn)聚合過程解析

    這篇文章主要介紹了Maven多個(gè)項(xiàng)目實(shí)現(xiàn)聚合過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • IDEA配置JRebel實(shí)現(xiàn)熱部署的方法

    IDEA配置JRebel實(shí)現(xiàn)熱部署的方法

    這篇文章主要介紹了IDEA配置JRebel實(shí)現(xiàn)熱部署的方法,本文給大家介紹的非常想詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Java解析Excel內(nèi)容的方法

    Java解析Excel內(nèi)容的方法

    這篇文章主要介紹了Java解析Excel內(nèi)容的方法,實(shí)例分析了java解析excel文件的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • 最通俗的白話講解JDK源碼中的ThreadLocal

    最通俗的白話講解JDK源碼中的ThreadLocal

    ThreadLocal是JDK包提供的,它提供線程本地變量,如果創(chuàng)建一樂ThreadLocal變量,那么訪問這個(gè)變量的每個(gè)線程都會有這個(gè)變量的一個(gè)副本,在實(shí)際多線程操作的時(shí)候,操作的是自己本地內(nèi)存中的變量,從而規(guī)避了線程安全問題,感興趣的朋友快來看看吧
    2022-01-01
  • Java使用I/O流讀取文件內(nèi)容的方法詳解

    Java使用I/O流讀取文件內(nèi)容的方法詳解

    這篇文章主要介紹了Java使用I/O流讀取文件內(nèi)容的方法,結(jié)合實(shí)例形式詳細(xì)分析了java使用I/O流讀取文件常見操作技巧,需要的朋友可以參考下
    2019-11-11
  • SpringBoot如何配置CROS Filter

    SpringBoot如何配置CROS Filter

    這篇文章主要介紹了SpringBoot如何配置CROS Filter問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • java如何讀取resources目錄和同級目錄文件

    java如何讀取resources目錄和同級目錄文件

    介紹了Java中讀取resources目錄和同級目錄文件的方法,并討論了在IDE和發(fā)布環(huán)境中可能遇到的問題,通過測試發(fā)現(xiàn),執(zhí)行目錄可能會影響文件讀取,建議在使用`user.dir`時(shí)注意jar包的運(yùn)行目錄問題
    2024-12-12
  • 關(guān)于連接池詳解(HikariCP、Druid)

    關(guān)于連接池詳解(HikariCP、Druid)

    這篇文章主要介紹了關(guān)于連接池詳解(HikariCP、Druid),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • SpringBoot實(shí)體多層嵌套判空字段的方式

    SpringBoot實(shí)體多層嵌套判空字段的方式

    這篇文章主要介紹了SpringBoot實(shí)體多層嵌套如何判空字段,最近在公司了接了個(gè)需求:需要開發(fā)一個(gè)中間系統(tǒng),進(jìn)行三方聯(lián)調(diào),文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2024-09-09
  • MyBatis中的SQL映射文件配置結(jié)果映射的操作指南

    MyBatis中的SQL映射文件配置結(jié)果映射的操作指南

    MyBatis?是一款優(yōu)秀的?ORM?框架,它提供了多種配置方式來定義?SQL?語句以及結(jié)果映射規(guī)則,本文將介紹?MyBatis?中的?SQL?映射文件如何配置結(jié)果映射,包括常規(guī)類型、集合類型等多種情況,需要的朋友可以參考下
    2023-07-07

最新評論

嘉鱼县| 来安县| 措美县| 扶余县| 马龙县| 保亭| 祁阳县| 大同市| 乡城县| 盐源县| 洛川县| 巴彦淖尔市| 禹城市| 南城县| 夏邑县| 漳平市| 元氏县| 佛坪县| 图们市| 麻江县| 彭泽县| 师宗县| 高尔夫| 汉源县| 贡山| 江北区| 涟水县| 钟山县| 河南省| 丰原市| 社旗县| 清水县| 南澳县| 安福县| 探索| 瑞安市| 乐安县| 临江市| 大城县| 沈阳市| 白河县|