<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. java語言

    Java的多態性

    時間:2025-05-19 16:24:01 java語言 我要投稿
    • 相關推薦

    關于Java的多態性

      多態性有兩種:

      1)編譯時多態性

      對于多個同名方法,如果在編譯時能夠確定執行同名方法中的哪一個,則稱為編譯時多態性.

      2)運行時多態性

      如果在編譯時不能確定,只能在運行時才能確定執行多個同名方法中的哪一個,則稱為運行時多態性.

      方法覆蓋表現出兩種多態性,當對象獲得本類實例時,為編譯時多態性,否則為運行時多態性,例如:

      XXXX x1 = new XXXX(參數列表); //對象獲得本類實例,對象與其引用的實例類型一致

      XXX xx1 = new XXX(參數列表);

      x1.toString(); //編譯時多態性,執行XXX類的方法.

      xx1.toString(); //編譯時多態性,執行XXXX類覆蓋的方法.

      XXXX為XXX的父類.

      由于子類對象既是父類對象,父類對象與子類對象之間具有賦值相容性,父類對象能夠被賦值為子類對象.例如,

      XXXX x2 = new XXX(參數列表); //父類對象獲得子類實例,子類對象即是父類對象

      x2.toString(); //運行時多態

      x2聲明為父類對象卻獲得子類XXX的實例,那么x2.toString()究竟執行父類方法還是執行子類覆蓋的方法呢?

      這分為兩種情況:

      取決于子類是否覆蓋父類方法.如果子類覆蓋父類方法,則執行子類方法;

      如果沒有覆蓋,則執行父類方法.

      在編譯時,僅僅依據對象所屬的類,系統無法確定到底應該執行那個類的方法,只有運行時才能確定,因此這是運行時多態.

      父類對象并不能執行所有的子類方法,只能執行那些父類中聲明子類覆蓋的子類方法.

     

    【Java的多態性】相關文章:

    Java與Java web的區別09-30

    淺談Java語言與Java 技術09-22

    談Java語言與Java技術的介紹09-20

    java教程之Java編程基礎09-12

    Java與Java web有什么不同08-26

    Java 繼承07-04

    Java的類07-19

    什么是Java09-20

    java講解06-23

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人