[發(fā)明專利]創(chuàng)建類的方法及裝置在審
| 申請?zhí)枺?/td> | 201610985097.5 | 申請日: | 2016-10-31 |
| 公開(公告)號: | CN107038057A | 公開(公告)日: | 2017-08-11 |
| 發(fā)明(設(shè)計)人: | 賈宏超 | 申請(專利權(quán))人: | 東軟集團(tuán)股份有限公司 |
| 主分類號: | G06F9/45 | 分類號: | G06F9/45 |
| 代理公司: | 北京英創(chuàng)嘉友知識產(chǎn)權(quán)代理事務(wù)所(普通合伙)11447 | 代理人: | 魏嘉熹,南毅寧 |
| 地址: | 110179 遼*** | 國省代碼: | 遼寧;21 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 創(chuàng)建 方法 裝置 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及計算機技術(shù)領(lǐng)域,具體地,涉及一種創(chuàng)建類的方法及裝置。
背景技術(shù)
Java是一種面向?qū)ο蟮木幊陶Z言,也是世界上最流行的編程語言之一,其特點是一個類只能繼承一個父類,但是可以實現(xiàn)多個接口。多態(tài)是面向?qū)ο蟪绦蛟O(shè)計的一個重要特征,指JVM(Java Virtual Machine,Java虛擬機)在運行時能夠根據(jù)調(diào)用方法的實例的具體類型來選擇調(diào)用哪個方法。Java中的多態(tài)通常是在父類中定義方法或者在接口中定義方法,實現(xiàn)類繼承父類或者實現(xiàn)接口之后,由JVM在運行時根據(jù)實現(xiàn)類的具體類型來進(jìn)行方法調(diào)用。
目前,Oracle(甲骨文公司)的JVM是世界上最流行的Java虛擬機之一,廣泛用于各種領(lǐng)域。Oracle的JVM載入Java類時,子類在內(nèi)存中會先排列父類的方法,后排列接口中的方法,接口中的方法在實現(xiàn)類中的位置是無法確定的,因此在以接口的方式實現(xiàn)多態(tài)時,需要先根據(jù)函數(shù)簽名進(jìn)行查找,再將查找到的方法排列到實現(xiàn)類中。可見,通過接口實現(xiàn)多態(tài)的步驟較多,實現(xiàn)多態(tài)的效率較低,程序運行速度較慢。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種創(chuàng)建類的方法及裝置,用于提高Java中實現(xiàn)多態(tài)的效率。
根據(jù)本發(fā)明實施例的第一方面,提供一種創(chuàng)建類的方法,包括:
確定Java程序中用于實現(xiàn)多態(tài)的第一接口是否滿足預(yù)設(shè)條件;
在所述第一接口滿足所述預(yù)設(shè)條件時,基于所述第一接口創(chuàng)建第一抽象類,其中,所述第一抽象類包括所述第一接口所包括的全部方法;
令所述Java程序中實現(xiàn)所述第一接口的全部實現(xiàn)類在運行所述Java程序時繼承所述第一抽象類包括的方法。
可選的,所述方法還包括:
確定所述Java程序中實現(xiàn)所述第一接口的全部實現(xiàn)類中的每個實現(xiàn)類是否有顯式父類;
其中,若所述全部實現(xiàn)類中的每個實現(xiàn)類均沒有顯式父類,則確定所述第一接口滿足所述預(yù)設(shè)條件。
可選的,所述方法還包括:
在所述全部實現(xiàn)類中的至少一個實現(xiàn)類有顯式父類時,確定所述至少一個實現(xiàn)類的顯式父類在是否有函數(shù)簽名沖突的方法;
其中,若所述至少一個實現(xiàn)類的顯式父類中沒有函數(shù)簽名沖突的方法,則確定所述第一接口滿足所述預(yù)設(shè)條件。
可選的,所述第一抽象類包括所述第一接口所包括的全部方法以及所述至少一個實現(xiàn)類的顯式父類所包括的全部方法。
根據(jù)本發(fā)明實施例的第二方面,提供一種創(chuàng)建類的裝置,包括:
第一確定模塊,用于確定Java程序中用于實現(xiàn)多態(tài)的第一接口是否滿足預(yù)設(shè)條件;
創(chuàng)建模塊,用于在所述第一接口滿足所述預(yù)設(shè)條件時,基于所述第一接口創(chuàng)建第一抽象類,其中,所述第一抽象類包括所述第一接口所包括的全部方法;
繼承模塊,用于令所述Java程序中實現(xiàn)所述第一接口的全部實現(xiàn)類在運行所述Java程序時繼承所述第一抽象類包括的方法。
可選的,所述裝置還包括:
第二確定模塊,用于確定所述Java程序中實現(xiàn)所述第一接口的全部實現(xiàn)類中的每個實現(xiàn)類是否有顯式父類;
其中,若所述全部實現(xiàn)類中的每個實現(xiàn)類均沒有顯式父類,則確定所述第一接口滿足所述預(yù)設(shè)條件。
可選的,所述裝置還包括:
第三確定模塊,用于在所述全部實現(xiàn)類中的至少一個實現(xiàn)類有顯式父類時,確定所述至少一個實現(xiàn)類的顯式父類在是否有函數(shù)簽名沖突的方法;
其中,若所述至少一個實現(xiàn)類的顯式父類中沒有函數(shù)簽名沖突的方法,則確定所述第一接口滿足所述預(yù)設(shè)條件。
可選的,所述第一抽象類包括所述第一接口所包括的全部方法以及所述至少一個實現(xiàn)類的顯式父類所包括的全部方法。
通過上述技術(shù)方案,可以在Java程序中的用于實現(xiàn)多態(tài)的第一接口滿足預(yù)設(shè)條件時,創(chuàng)建包含第一接口中全部方法的第一抽象類,那么在運行Java程序過程中,實現(xiàn)第一接口的實現(xiàn)類無需再去根據(jù)函數(shù)簽名查找第一接口中的方法,而可以直接以繼承的方式從第一抽象類調(diào)用方法。通過這樣的方式,由于方法在父類和子類中的偏移量是完全一致的,因此實現(xiàn)類(子類)在繼承第一抽象類(父類)時,可以直接根據(jù)偏移量進(jìn)行方法調(diào)用,無需根據(jù)函數(shù)簽名進(jìn)行查找方法,節(jié)省了查找的步驟,提升了程序運行的速度,提高了Java程序?qū)崿F(xiàn)多態(tài)的效率。
本發(fā)明的其他特征和優(yōu)點將在隨后的具體實施方式部分予以詳細(xì)說明。
附圖說明
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于東軟集團(tuán)股份有限公司,未經(jīng)東軟集團(tuán)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610985097.5/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 圖冊創(chuàng)建設(shè)備、圖冊創(chuàng)建方法和圖冊創(chuàng)建程序
- 一種使用創(chuàng)建接口來靈活創(chuàng)建對象的方法
- 報告創(chuàng)建系統(tǒng)、報告創(chuàng)建裝置以及報告創(chuàng)建方法
- 文本創(chuàng)建系統(tǒng)、文本創(chuàng)建裝置、文本創(chuàng)建方法
- 文檔創(chuàng)建設(shè)備、文檔創(chuàng)建系統(tǒng)及文檔創(chuàng)建方法
- 剪報創(chuàng)建方法和剪報創(chuàng)建系統(tǒng)
- 數(shù)據(jù)創(chuàng)建裝置、數(shù)據(jù)創(chuàng)建方法及數(shù)據(jù)創(chuàng)建程序
- 信息創(chuàng)建方法及信息創(chuàng)建裝置
- 報告創(chuàng)建系統(tǒng)和報告創(chuàng)建方法
- 創(chuàng)建改進(jìn)的顏色的顏色創(chuàng)建裝置及顏色創(chuàng)建方法





