java中多態的詳解

來源:互聯網
上載者:User

標籤:

  定義:指允許不同類的對象對同一訊息做出響應。即同一訊息可以根據發送對象的不同而採用多種不同的行為方式。(發送訊息就是函數調用)

  多態的前提:

    A:有繼承或者實現關係。

    B:有方法重寫。

    C:有父類或者父介面引用指向子類對象。

  多態的分類:
    a:具體類多態
      class Fu {}
      class Zi extends Fu {}
      

      Fu f = new Zi();
    

    b:抽象類別多態
      abstract class Fu {}
      class Zi extends Fu {}

      Fu f = new Zi();
      

    c:介面多態
      interface Fu {}
      class Zi implements Fu {}

      Fu f = new Zi();

  多態中的成員訪問特點
    A:成員變數
      編譯看左邊,運行看左邊
    B:構造方法
      子類的構造都會預設訪問父類構造
    C:成員方法
      編譯看左邊,運行看右邊
    D:靜態方法
      編譯看左邊,運行看左邊

  為什麼?
    因為成員方法有重寫。

  多態的好處:
    A:提高代碼的維護性(繼承體現)
    B:提高代碼的擴充性(多態體現)

  多態的弊端:
    父不能使用子的特有功能。

  現象:
    子可以當作父使用,父不能當作子使用。

  多態中的轉型
    A:向上轉型
    從子到父

    B:向下轉型
    從父到子

 1         class 孔子爹 { 2         public int age = 40; 3          4         public void teach() { 5             System.out.println("講解JavaSE"); 6         } 7     } 8      9     class 孔子 extends 孔子爹 {10         public int age = 20;11         12         public void teach() {13             System.out.println("講解論語");14         }15         16         public void playGame() {17             System.out.println("英雄聯盟");18         }19     }20     21     //Java培訓特別火,很多人來請孔子爹去講課,這一天孔子爹被請走了22     //但是還有人來請,就剩孔子在家,價格還挺高。孔子一想,我是不是可以考慮去呢?23     //然後就穿上爹的衣服,帶上爹的眼睛,粘上爹的鬍子。就開始裝爹24     //向上轉型25     孔子爹 k爹 = new 孔子();26     //到人家那裡去了27     System.out.println(k爹.age); //4028     k爹.teach(); //講解論語29     //k爹.playGame(); //這是兒子才能做的30     31     32     //講完了,下班回家了33     //脫下爹的裝備,換上自己的裝備34     //向下轉型35     孔子 k = (孔子) k爹; 36     System.out.println(k.age); //2037     k.teach(); //講解論語38     k.playGame(); //英雄聯盟39             

 

java中多態的詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.