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

Java接口繼承和使用接口操作示例

 更新時間:2019年09月25日 11:28:48   作者:cakincqm  
這篇文章主要介紹了Java接口繼承和使用接口操作,結合具體實例形式分析了Java接口繼承與使用的相關原理、操作技巧與注意事項,需要的朋友可以參考下

本文實例講述了Java接口繼承和使用接口操作。分享給大家供大家參考,具體如下:

一 接口的繼承

1 點睛

接口支持多繼承,一個接口可以有多個父接口,子接口擴展某個父接口,將會獲得父接口里定義的所有抽象方法、常量。

一個接口繼承多個父接口時,多個父接口排在extends關鍵字之后。

2 代碼

interface interfaceA
{
  int PROP_A = 5;
  void testA();
}
interface interfaceB
{
  int PROP_B = 6;
  void testB();
}
interface interfaceC extends interfaceA, interfaceB
{
  int PROP_C = 7;
  void testC();
}
public class InterfaceExtendsTest
{
  public static void main(String[] args)
  {
   System.out.println(interfaceC.PROP_A);
   System.out.println(interfaceC.PROP_B);
   System.out.println(interfaceC.PROP_C);
  }
}

3 運行

5
6
7

4 說明

interfaceC接口繼承了 interfaceA和 interfaceB,所以 interfaceC中獲得了它們的常量,因此在main()方法中看到通過 interfaceC來訪問PROP_A、PROP_B、PROP_C常量。

二 使用接口

1 點睛

接口不能用于創(chuàng)建實例,但接口可以用于聲明引用類型變量。但這個引用類型的變量必須引用到其實現(xiàn)類的對象。接口的主要用途就是被實現(xiàn)類實現(xiàn)。接口主要有如下用途。

  • 定義變量,也可用于進行強制類型轉換。
  • 調用接口中定義的常量。
  • 被其他類實現(xiàn)。

一個類可以實現(xiàn)一個或多個接口,繼承使用extends關鍵字,實現(xiàn)則使用implements關鍵字。一個類可以實現(xiàn)多個接口,這是Java為單繼承靈活性不足所做的補充。

一個類實現(xiàn)一個或多個接口之后,這個類必須完全實現(xiàn)這些接口里所定義的全部抽象方法(也就是重寫這些抽象方法);否則,該類將保留從父接口那里繼承到的抽象方法,該類也必須定義成抽象類。

2 代碼

interface Output
{
  // 接口里定義的成員變量只能是常量
  int MAX_CACHE_LINE = 50;
  // 接口里定義的普通方法只能是public的抽象方法
  void out();
  void getData( String msg );
  // 接口中定義默認方法,需要使用default修飾
  default void print( String... msgs )
  {
   for (String msg : msgs)
   {
     System.out.println(msg);
   }
  }
  // 接口中定義默認方法,需要使用default修飾
  default void test()
  {
   System.out.println("默認的test()方法");
  }
  // 接口中定義類方法、需要使用static修飾
  static String staticTest()
  {
   return "Class method";
  }
}
// 定義一個Product接口
interface Product
{
  int getProduceTime();
}
// 讓Printer類實現(xiàn)Output和Product接口
public class Printer implements Output , Product
{
  private String[] printData
   = new String[MAX_CACHE_LINE];
  // 用以記錄當前需打印的作業(yè)數
  private int dataNum = 0;
  public void out()
  {
   // 只要還有作業(yè),繼續(xù)打印
   while(dataNum > 0)
   {
     System.out.println("打印機打?。? + printData[0]);
     // 把作業(yè)隊列整體前移一位,并將剩下的作業(yè)數減1
     System.arraycopy(printData , 1
      , printData, 0, --dataNum);
   }
  }
  public void getData(String msg)
  {
   if (dataNum >= MAX_CACHE_LINE)
   {
     System.out.println("輸出隊列已滿,添加失敗");
   }
   else
   {
     // 把打印數據添加到隊列里,已保存數據的數量加1。
     printData[dataNum++] = msg;
   }
  }
  public int getProduceTime()
  {
   return 45;
  }
  public static void main(String[] args)
  {
   // 創(chuàng)建一個Printer對象,當成Output使用
   Output o = new Printer();
   o.getData("輕量級Java EE企業(yè)應用實戰(zhàn)");
   o.getData("瘋狂Java講義");
   o.out();
   o.getData("瘋狂Android講義");
   o.getData("瘋狂Ajax講義");
   o.out();
   // 調用Output接口中定義的默認方法
   o.print("孫悟空" , "豬八戒" , "白骨精");
   o.test();
   // 創(chuàng)建一個Printer對象,當成Product使用
   Product p = new Printer();
   System.out.println(p.getProduceTime());
   // 所有接口類型的引用變量都可直接賦給Object類型的變量
   Object obj = p;
  }
}

3 運行

打印機打印:輕量級Java EE企業(yè)應用實戰(zhàn)
打印機打?。函偪馢ava講義
打印機打?。函偪馎ndroid講義
打印機打印:瘋狂Ajax講義
孫悟空
豬八戒
白骨精
默認的test()方法
45

4 說明

Printer 實現(xiàn)了 Output 接口和 Product接口,因此Pinter對象即可以直接賦給Output變量,也可直接賦給Product變量。仿佛Printer類既是Output類的子類,也是Product類的子類,這就是Java提供的模擬多繼承。

Printer實現(xiàn)了Output接口,即可獲取Output接口中定義的print()方法和test()兩個默認方法,因此Printer實例可以直接調用這兩個默認方法。

接口不能顯示繼承任何類,但所有接口類型的引用變量都可以直接賦給Object類型的引用變量。

更多java相關內容感興趣的讀者可查看本站專題:《Java面向對象程序設計入門與進階教程》、《Java數據結構與算法教程》、《Java操作DOM節(jié)點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設計有所幫助。

相關文章

  • springboot 使用yml配置文件自定義屬性的操作代碼

    springboot 使用yml配置文件自定義屬性的操作代碼

    在SpringBoot中yml/yaml文件可以自定義一些屬性,以供注入給自定義bean對象的屬性,主要通過空格和層次來實現(xiàn),類似于python代碼,本文通過實例代碼給大家介紹springboot 使用yml配置文件自定義屬性,感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • JavaAgent實現(xiàn)http接口發(fā)布方式淺析

    JavaAgent實現(xiàn)http接口發(fā)布方式淺析

    這篇文章主要介紹了JavaAgent實現(xiàn)http接口發(fā)布方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-03-03
  • Maven分步詳解多環(huán)境配置與應用流程

    Maven分步詳解多環(huán)境配置與應用流程

    這篇文章主要介紹了Maven進階多環(huán)境配置與應用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • 深入解析Java多態(tài)進階學習

    深入解析Java多態(tài)進階學習

    java的動態(tài)綁定機制非常重要。這篇文章將帶大家更深入的學習一下Java的多態(tài),文中的示例代碼講解詳細,對我們學習Java有一定幫助,需要的可以參考一下
    2022-07-07
  • Spring實戰(zhàn)之注入集合值操作示例

    Spring實戰(zhàn)之注入集合值操作示例

    這篇文章主要介紹了Spring實戰(zhàn)之注入集合值操作,結合實例形式分析了Spring注入集合值相關配置及使用操作技巧,需要的朋友可以參考下
    2019-11-11
  • java后臺實現(xiàn)支付寶對賬功能的示例代碼

    java后臺實現(xiàn)支付寶對賬功能的示例代碼

    這篇文章主要介紹了java后臺實現(xiàn)支付寶對賬功能的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • JDK的下載、安裝與部署圖文教程

    JDK的下載、安裝與部署圖文教程

    這篇文章主要為大家詳細介紹了JDK的下載、安裝與部署圖文教程,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Java 在Word文檔中添加藝術字的示例

    Java 在Word文檔中添加藝術字的示例

    這篇文章主要介紹了Java 在Word文檔中添加藝術字的示例,幫助大家使用Java處理word文檔,感興趣的朋友可以了解下
    2020-09-09
  • java執(zhí)行shell命令及日志收集避坑指南分享

    java執(zhí)行shell命令及日志收集避坑指南分享

    這篇文章主要介紹了java執(zhí)行shell命令及日志收集避坑指南,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Java如何將字符串轉為數字int的三種方式詳析

    Java如何將字符串轉為數字int的三種方式詳析

    這篇文章主要給大家介紹了關于Java如何將字符串轉為數字int的三種方式,在編程中我們經常需要進行各種數據類型之間的轉換操作,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-10-10

最新評論

千阳县| 淮阳县| 赫章县| 财经| 盐山县| 和林格尔县| 阿拉善左旗| 濮阳市| 四平市| 韩城市| 玉屏| 静安区| 奎屯市| 长海县| 临安市| 宾川县| 江西省| 南阳市| 宁陕县| 洛浦县| 九江县| 米脂县| 额济纳旗| 东辽县| 郁南县| 大足县| 淮南市| 桓台县| 绥棱县| 平阳县| 塔河县| 罗城| 花莲市| 会理县| 和平区| 神池县| 于都县| 和顺县| 房山区| 阿拉善盟| 绍兴市|