旗下导航:搜·么
当前位置:网站首页 > JAVA教程 > 正文

java怎样完成多态【JAVA教程】,java,多态

作者:搜教程发布时间:2019-12-04分类:JAVA教程浏览:37评论:0


导读:Java多态概述:(引荐:java视频教程)多态是面向对象编程言语的重要特征,它许可基类的指针或援用指向派生类的对象,而在细致接见时完成要领的动态绑定。Java关于要...

Java多态概述:(引荐:java视频教程)

多态是面向对象编程言语的重要特征,它许可基类的指针或援用指向派生类的对象,而在细致接见时完成要领的动态绑定。Java 关于要领挪用动态绑定的完成重要依赖于要领表,但经由历程类援用挪用(invokevitual)和接口援用挪用(invokeinterface)的完成则有所差别。

java中完成多态须要三个前提:

1、须要有继续关联的存在。

2、须要有要领的重写。

3、须要有父类的援用指向子类对象。

类援用挪用的大抵历程为:Java编译器将Java源代码编译成class文件,在编译历程当中,会依据静态范例将挪用的标记援用写到class文件中。

在执行时,JVM依据class文件找到挪用要领的标记援用,然后在静态范例的要领表中找到偏移量,然后依据this指针肯定对象的现实范例,运用现实范例的要领表,偏移量跟静态范例中要领表的偏移量一样,如果在现实范例的要领表中找到该要领,则直接挪用,不然,以为没有重写父类该要领。根据继续关联从下往上搜刮。

从上图能够看出,当顺序运行时,须要某个类时,类载入子系统会将响应的class文件载入到JVM中,并在内部竖立该类的范例信息(这个范例信息实在就是class文件在JVM中存储的一种数据结构),包含java类定义的一切信息,包含要领代码,类变量、成员变量、以及本博文要重点议论的要领表。这个范例信息就存储在要领区。

注重,这个要领区中的范例信息跟在堆中寄存的class对象是差别的。在要领区中,这个class的范例信息只要唯一的实例(所以是各个线程同享的内存地区),而在堆中能够有多个该class对象。能够经由历程堆中的class对象接见到要领区中范例信息。就像在java反射机制那样,经由历程class对象能够接见到该类的一切信息一样。

更多java学问请关注java基础教程栏目。

以上就是java怎样完成多态的细致内容,更多请关注ki4网别的相干文章!

标签:java多态


欢迎 发表评论: