欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java中多態(tài)的實現(xiàn)-創(chuàng)新互聯(lián)

Java多態(tài)概述:

創(chuàng)新互聯(lián)是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來公司不斷探索創(chuàng)新,始終堅持為客戶提供滿意周到的服務(wù),在本地打下了良好的口碑,在過去的十載時間我們累計服務(wù)了上千家以及全國政企客戶,如混凝土泵車等企業(yè)單位,完善的項目管理流程,嚴格把控項目進度與質(zhì)量監(jiān)控加上過硬的技術(shù)實力獲得客戶的一致贊揚。

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

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

1、需要有繼承關(guān)系的存在。

2、需要有方法的重寫。

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

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

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

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

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

以上就是java如何實現(xiàn)多態(tài)的詳細內(nèi)容,更多請關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!

網(wǎng)頁名稱:java中多態(tài)的實現(xiàn)-創(chuàng)新互聯(lián)
URL地址:http://chinadenli.net/article10/dgghdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、電子商務(wù)、App開發(fā)、品牌網(wǎng)站建設(shè)、網(wǎng)站設(shè)計公司、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司