91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中多態的實現

發布時間:2020-06-19 13:13:45 來源:億速云 閱讀:175 作者:鴿子 欄目:編程語言

Java多態概述:

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

java中實現多態需要三個條件:

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

2、需要有方法的重寫。

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

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

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

java中多態的實現

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

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

以上就是java如何實現多態的詳細內容,更多請關注億速云其它相關文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

邵武市| 三河市| 谢通门县| 焦作市| 晴隆县| 玉树县| 土默特左旗| 乌拉特后旗| 邹城市| 泽库县| 泸州市| 靖安县| 泽州县| 乌拉特后旗| 二手房| 曲水县| 昌邑市| 太仓市| 武安市| 兴义市| 承德市| 罗定市| 广平县| 舞阳县| 潮州市| 临西县| 广德县| 泰和县| 青神县| 武隆县| 晴隆县| 上犹县| 泽州县| 甘泉县| 罗山县| 宁安市| 乌什县| 巨鹿县| 防城港市| 嵊泗县| 铜山县|