广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >java如何实现多态
  • 242
分享到

java如何实现多态

java多态 2020-07-13 08:07:04 242人浏览 猪猪侠
摘要

Java多态概述:(推荐:java视频教程)多态是面向对象编程语言的重要特性,它允许基类的指针或引用指向派生类的对象,而在具体访问时实现方法的动态绑定。Java 对于方法调用动态绑定的实现主要依赖于方法表,但通过类引用调用(invokevi

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

多态是面向对象编程语言的重要特性,它允许基类的指针或引用指向派生类的对象,而在具体访问时实现方法的动态绑定。Java 对于方法调用动态绑定的实现主要依赖于方法表,但通过类引用调用(invokevitual)和接口引用调用(invokeinterface)的实现则有所不同。

java中实现多态需要三个条件:

需要有继承关系的存在。

需要有方法的重写。

需要有父类的引用指向子类对象。

类引用调用的大致过程为:Java编译器将Java源代码编译成class文件,在编译过程中,会根据静态类型将调用的符号引用写到class文件中。

在执行时,JVM根据class文件找到调用方法的符号引用,然后在静态类型的方法表中找到偏移量,然后根据this指针确定对象的实际类型,使用实际类型的方法表,偏移量跟静态类型中方法表的偏移量一样,如果在实际类型的方法表中找到该方法,则直接调用,否则,认为没有重写父类该方法。按照继承关系从下往上搜索。

1.jpg

从上图可以看出,当程序运行时,需要某个类时,类载入子系统会将相应的class文件载入到JVM中,并在内部建立该类的类型信息(这个类型信息其实就是class文件在JVM中存储的一种数据结构),包含java类定义的所有信息,包括方法代码,类变量、成员变量、以及本博文要重点讨论的方法表。这个类型信息就存储在方法区。

注意,这个方法区中的类型信息跟在堆中存放的class对象是不同的。在方法区中,这个class的类型信息只有唯一的实例(所以是各个线程共享的内存区域),而在堆中可以有多个该class对象。可以通过堆中的class对象访问到方法区中类型信息。就像在java反射机制那样,通过class对象可以访问到该类的所有信息一样。

更多java知识请关注Java基础教程栏目。

--结束END--

本文标题: java如何实现多态

本文链接: https://www.lsjlt.com/news/1913.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java如何实现多态
    Java多态概述:(推荐:java视频教程)多态是面向对象编程语言的重要特性,它允许基类的指针或引用指向派生类的对象,而在具体访问时实现方法的动态绑定。Java 对于方法调用动态绑定的实现主要依赖于方法表,但通过类引用调用(invokevi...
    99+
    2020-07-13
    java 多态
  • 如何在Java中实现多态
    小编给大家分享一下如何在Java中实现多态,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!public class Polymorphism5 {//打印人吃水果的信息public v...
    99+
    2023-06-02
  • java是如何实现多态的
    多态就是指一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。 (推荐学习:java课程)因为在程序运行时才确定具体的类,这样,不用修改源程序代...
    99+
    2020-04-17
    java教程 java
  • java多态是如何实现的
    在面向对象编程(Object-Oriented Programming, OOP)中,多态机制无疑是其最具特色的功能,甚至可以说,不运用多态的编程不能称之为OOP。本质上多态分两种:编译时多态(又称静态多态),运行时多态(又称动态多态) ...
    99+
    2020-01-11
    java教程 java
  • java中的多态是如何实现的
    什么是多态面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。多态的定义指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)实现多态的技...
    99+
    2017-08-04
    java 多态 实现
  • Java面向对象之如何实现多态
    这篇文章主要介绍了Java面向对象之如何实现多态,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。转载于 : http://www.verejava.com/id=16...
    99+
    2023-06-02
  • Java中怎么实现多态
    这篇文章将为大家详细讲解有关Java中怎么实现多态,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。多态多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确...
    99+
    2023-06-20
  • C#多态如何实现
    小编给大家分享一下C#多态如何实现,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!C#实现多态主要有3种方法,虚方法,抽象类,接口1 虚方法在父类的方法前面加关键字...
    99+
    2023-06-14
  • Java多态性是怎么实现的
    本篇内容主要讲解“Java多态性是怎么实现的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java多态性是怎么实现的”吧!多态性是通过:1 接口和实现接口并覆盖接口中同一方法的几不同的类体现的2...
    99+
    2023-06-17
  • Go语言如何实现多态 
    这篇“Go语言如何实现多态 ”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Go语言如何实现多态 ”文章吧...
    99+
    2023-06-30
  • C++中的多态如何实现
    这篇文章主要介绍“C++中的多态如何实现”,在日常操作中,相信很多人在C++中的多态如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++中的多态如何实现”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-30
  • 如何在php中实现多态
    本篇文章给大家分享的是有关如何在php中实现多态,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对...
    99+
    2023-06-15
  • Golang中如何实现多态性?
    Golang中的多态性如何发挥作用?在Golang中,多态性是通过接口实现的。通过接口可以实现多个不同类型的对象统一使用的能力,这使得我们可以更灵活地编写代码和处理不同类别对象的逻辑。接下来,本文将介绍Golang中多态性的概念和如何使用接...
    99+
    2023-12-29
    Golang 多态性 发挥作用
  • java多态向下转型怎么实现
    Java中实现向下转型的方式是使用强制类型转换符((子类类型) 父类对象),将父类对象转换为子类类型。 例如,有一个父类Animal...
    99+
    2023-10-24
    java
  • java多态实现电子宠物系统
    本文实例为大家分享了java多态实现电子宠物系统的具体代码,供大家参考,具体内容如下 效果实现: 代码实现: 1、主人类: public class Master {     //...
    99+
    2022-11-13
  • java多态实现的原理是什么
    Java多态的实现原理是通过方法的重写和方法的动态绑定实现的。多态是指同一个方法在不同的对象上可以有不同的表现形式。在Java中,一...
    99+
    2023-09-22
    java
  • java实现多态的机制是什么
    Java实现多态的机制是通过方法的重写和方法的动态绑定来实现的。方法的重写是指在继承关系中,子类可以重写(覆盖)父类的方法,使得子类...
    99+
    2023-09-22
    java
  • java多态的实现方式有哪些
    Java中多态的实现方式有以下几种:1. 继承:子类继承父类,并重写父类的方法,通过父类引用指向子类对象实现多态。2. 接口:定义一...
    99+
    2023-08-16
    java
  • java实现多态的方法是什么
    Java实现多态的方法是通过方法的重写和方法的重载来实现的。方法的重写是指子类重写父类的方法,使得在调用该方法时,根据对象的实际类型...
    99+
    2023-10-26
    java
  • java 多态实例代码
    多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作。多态性是对象多种表现形式的体现,比如:在现实中,我们按下F1键这个动作:如果当前在Flash界面下弹出的就是AS 3的帮助文档如果当前在Wo...
    99+
    2023-05-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作