站長資訊網
        最全最豐富的資訊網站

        java是如何實現多態的

        java是如何實現多態的

        多態就是指一個引用變量倒底會指向哪個類的實例對象,該引用變量發出的方法調用到底是哪個類中實現的方法,必須在由程序運行期間才能決定。 (推薦學習:java課程)

        因為在程序運行時才確定具體的類,這樣,不用修改源程序代碼,就可以讓引用變量綁定到各種不同的類實現上,從而導致該引用調用的具體方法隨之改變,即不修改程序代碼就可以改變程序運行時所綁定的具體代碼,讓程序可以選擇多個運行狀態,這就是多態性。

        特點:

        指向子類的父類引用由于向上轉型了,它只能訪問父類中擁有的方法和屬性,而對于子類中存在而父類中不存在的方法,該引用是不能使用的,盡管是重載該方法。

        若子類重寫了父類中的某些方法,在調用該些方法的時候,必定是使用子類中定義的這些方法(動態連接、動態調用)。

        Java實現多態有三個必要條件:繼承、重寫、向上轉型。

        調用的優先級方法,該優先級為:this.show(O)、super.show(O)、this.show((super)O)、super.show((super)O)。

        多態的實現原理

        Java 里對象方法的調用是依靠類信息里的方法表實現的。

        總體而言,當調用對象某個方法時,JVM查找該對象類的方法表以確定該方法的直接引用地址,有了地址后才真正調用該方法。

        超類繼承父類的方法,如果不Overriding該方法,那么調用時會指向父類的方法。如果Overrding該方法,那么指向該類的代碼區。

        但是超類會存有父類的方法表。

        我們知道java程序運行時,類的相關信息放在方法區,在這些信息中有個叫方法表的區域,該表包含有該類型所定義的所有方法的信息和指向這些方法實際代碼的指針。

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 亚洲欧美国产∧v精品综合网| 8x福利精品第一导航| 国产精品亲子乱子伦xxxx裸| 国产精品va久久久久久久 | 九九热这里只有在线精品视| 午夜精品射精入后重之免费观看| 国产午夜精品一本在线观看| 久久久久国产精品| 国产精品99久久99久久久| 无码精品视频一区二区三区| 久久精品成人欧美大片| 2021国产成人精品久久| 国产精品亚洲片夜色在线| 精品福利一区二区三区免费视频 | 国产精品免费精品自在线观看| 亚洲精品乱码久久久久久蜜桃图片| 精品国产福利尤物免费| 国产精品无码永久免费888| 香蕉国产精品频视| 国产成人精品福利网站在线| 精品国产三级a∨在线欧美| 亚洲AV成人精品网站在线播放 | 91精品国产乱码久久久久久| 人妻少妇精品视中文字幕国语| 在线亚洲精品福利网址导航| 亚州日韩精品专区久久久| 男人的天堂精品国产一区| 99国产精品久久| 国内精品伊人久久久久av一坑| 无码精品国产VA在线观看| 无码国产精品一区二区免费vr| 日韩精品无码一区二区中文字幕 | 国产精品99精品视频网站| 亚洲人成亚洲精品| 在线电影国产精品| 中文字幕亚洲精品| 国产成人精品一区二区三区| 999国产精品色在线播放| 成人免费精品网站在线观看影片| 88国产精品欧美一区二区三区| 91亚洲精品自在在线观看|