Java--多態

來源:互聯網
上載者:User

標籤:事物   運行   強制   繼承   訪問   編譯失敗   bsp   面向   語言   

一、多態概述

   多態是繼封裝、繼承之後,物件導向的第三大特性。

 

現實事物經常會體現出多種形態,如學生,學生是人的一種,則一個具體的同學張三既是學生也是人,即出現兩種形態。

 

Java作為物件導向的語言,同樣可以描述一個事物的多種形態。如Student類繼承了Person類,一個Student的對象便既是Student,又是Person。

    格式:就是父類引用指向子類對象

        父類類型 變數名=new 子類類型();

二、多態成員特點

    A:多態成員變數

      當子父類中出現同名的成員變數時,多態調用該變數時:

      編譯時間期:參考的是引用型變數所屬的類中是否有被調用的成員變數。沒有,編譯失敗。

      運行時期:也是調用引用型變數所屬的類中的成員變數。

      簡單記:編譯和運行都參考等號的左邊。編譯運行看左邊。

     B:多態成員方法

      編譯時間期:參考引用變數所屬的類,如果沒有類中沒有調用的方法,編譯失敗。

      運行時期:參考引用變數所指的對象所屬的類,並運行對象所屬類中的成員方法。

      簡而言之:編譯看左邊,運行看右邊

三、多態中向上轉型與向下轉型

     多態的轉型分為向上轉型與向下轉型兩種:

 

     A:向上轉型:當有子類對象賦值給一個父類引用時,便是向上轉型,多態本身就是向上轉型的過程。

 

     使用格式:當Student類繼承Person類時

          Person p=new Student();

     B:向下轉型:一個已經向上轉型的子類對象可以使用強制類型轉換的格式,將父類引用轉為子類引用,這個過程是向下轉型。如果是直接建立父類對象,是無法向下轉型的

     使用格式:Student stu=(Student)p;

四、優缺點

  多態的優缺點

      優點:可以提高可維護性(多態前提所保證的),提高代碼的可擴充性

   缺點:無法直接存取子類特有的成員

 

 

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.