[发明专利]创建类的方法及装置在审
| 申请号: | 201610985097.5 | 申请日: | 2016-10-31 |
| 公开(公告)号: | CN107038057A | 公开(公告)日: | 2017-08-11 |
| 发明(设计)人: | 贾宏超 | 申请(专利权)人: | 东软集团股份有限公司 |
| 主分类号: | G06F9/45 | 分类号: | G06F9/45 |
| 代理公司: | 北京英创嘉友知识产权代理事务所(普通合伙)11447 | 代理人: | 魏嘉熹,南毅宁 |
| 地址: | 110179 辽*** | 国省代码: | 辽宁;21 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 创建 方法 装置 | ||
技术领域
本发明涉及计算机技术领域,具体地,涉及一种创建类的方法及装置。
背景技术
Java是一种面向对象的编程语言,也是世界上最流行的编程语言之一,其特点是一个类只能继承一个父类,但是可以实现多个接口。多态是面向对象程序设计的一个重要特征,指JVM(Java Virtual Machine,Java虚拟机)在运行时能够根据调用方法的实例的具体类型来选择调用哪个方法。Java中的多态通常是在父类中定义方法或者在接口中定义方法,实现类继承父类或者实现接口之后,由JVM在运行时根据实现类的具体类型来进行方法调用。
目前,Oracle(甲骨文公司)的JVM是世界上最流行的Java虚拟机之一,广泛用于各种领域。Oracle的JVM载入Java类时,子类在内存中会先排列父类的方法,后排列接口中的方法,接口中的方法在实现类中的位置是无法确定的,因此在以接口的方式实现多态时,需要先根据函数签名进行查找,再将查找到的方法排列到实现类中。可见,通过接口实现多态的步骤较多,实现多态的效率较低,程序运行速度较慢。
发明内容
本发明的目的是提供一种创建类的方法及装置,用于提高Java中实现多态的效率。
根据本发明实施例的第一方面,提供一种创建类的方法,包括:
确定Java程序中用于实现多态的第一接口是否满足预设条件;
在所述第一接口满足所述预设条件时,基于所述第一接口创建第一抽象类,其中,所述第一抽象类包括所述第一接口所包括的全部方法;
令所述Java程序中实现所述第一接口的全部实现类在运行所述Java程序时继承所述第一抽象类包括的方法。
可选的,所述方法还包括:
确定所述Java程序中实现所述第一接口的全部实现类中的每个实现类是否有显式父类;
其中,若所述全部实现类中的每个实现类均没有显式父类,则确定所述第一接口满足所述预设条件。
可选的,所述方法还包括:
在所述全部实现类中的至少一个实现类有显式父类时,确定所述至少一个实现类的显式父类在是否有函数签名冲突的方法;
其中,若所述至少一个实现类的显式父类中没有函数签名冲突的方法,则确定所述第一接口满足所述预设条件。
可选的,所述第一抽象类包括所述第一接口所包括的全部方法以及所述至少一个实现类的显式父类所包括的全部方法。
根据本发明实施例的第二方面,提供一种创建类的装置,包括:
第一确定模块,用于确定Java程序中用于实现多态的第一接口是否满足预设条件;
创建模块,用于在所述第一接口满足所述预设条件时,基于所述第一接口创建第一抽象类,其中,所述第一抽象类包括所述第一接口所包括的全部方法;
继承模块,用于令所述Java程序中实现所述第一接口的全部实现类在运行所述Java程序时继承所述第一抽象类包括的方法。
可选的,所述装置还包括:
第二确定模块,用于确定所述Java程序中实现所述第一接口的全部实现类中的每个实现类是否有显式父类;
其中,若所述全部实现类中的每个实现类均没有显式父类,则确定所述第一接口满足所述预设条件。
可选的,所述装置还包括:
第三确定模块,用于在所述全部实现类中的至少一个实现类有显式父类时,确定所述至少一个实现类的显式父类在是否有函数签名冲突的方法;
其中,若所述至少一个实现类的显式父类中没有函数签名冲突的方法,则确定所述第一接口满足所述预设条件。
可选的,所述第一抽象类包括所述第一接口所包括的全部方法以及所述至少一个实现类的显式父类所包括的全部方法。
通过上述技术方案,可以在Java程序中的用于实现多态的第一接口满足预设条件时,创建包含第一接口中全部方法的第一抽象类,那么在运行Java程序过程中,实现第一接口的实现类无需再去根据函数签名查找第一接口中的方法,而可以直接以继承的方式从第一抽象类调用方法。通过这样的方式,由于方法在父类和子类中的偏移量是完全一致的,因此实现类(子类)在继承第一抽象类(父类)时,可以直接根据偏移量进行方法调用,无需根据函数签名进行查找方法,节省了查找的步骤,提升了程序运行的速度,提高了Java程序实现多态的效率。
本发明的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东软集团股份有限公司,未经东软集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610985097.5/2.html,转载请声明来源钻瓜专利网。





