久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      java如何實現(xiàn)多態(tài)

      java如何實現(xiàn)多態(tài)

      Java多態(tài)概述:(推薦:java視頻教程)

      多態(tài)是面向對象編程語言的重要特性,它允許基類的指針或引用指向派生類的對象,而在具體訪問時實現(xiàn)方法的動態(tài)綁定。Java 對于方法調用動態(tài)綁定的實現(xiàn)主要依賴于方法表,但通過類引用調用(invokevitual)和接口引用調用(invokeinterface)的實現(xiàn)則有所不同。

      java中實現(xiàn)多態(tài)需要三個條件:

      1、需要有繼承關系的存在。

      2、需要有方法的重寫。

      3、需要有父類的引用指向子類對象。

      類引用調用的大致過程為:Java編譯器將Java源代碼編譯成class文件,在編譯過程中,會根據(jù)靜態(tài)類型將調用的符號引用寫到class文件中。

      在執(zhí)行時,JVM根據(jù)class文件找到調用方法的符號引用,然后在靜態(tài)類型的方法表中找到偏移量,然后根據(jù)this指針確定對象的實際類型,使用實際類型的方法表,偏移量跟靜態(tài)類型中方法表的偏移量一樣,如果在實際類型的方法表中找到該方法,則直接調用,否則,認為沒有重寫父類該方法。按照繼承關系從下往上搜索。

      java如何實現(xiàn)多態(tài)

      從上圖可以看出,當程序運行時,需要某個類時,類載入子系統(tǒng)會將相應的class文件載入到JVM中,并在內部建立該類的類型信息(這個類型信息其實就是class文件在JVM中存儲的一種數(shù)據(jù)結構),包含java類定義的所有信息,包括方法代碼,類變量、成員變量、以及本博文要重點討論的方法表。這個類型信息就存儲在方法區(qū)。

      注意,這個方法區(qū)中的類型信息跟在堆中存放的class對象是不同的。在方法區(qū)中,這個class的類型信息只有唯一的實例(所以是各個線程共享的內存區(qū)域),而在堆中可以有多個該class對象。可以通過堆中的class對象訪問到方法區(qū)中類型信息。就像在java反射機制那樣,通過class對象可以訪問到該類的所有信息一樣。

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號