首页 > 其他分享 >谈谈对多态的理解

谈谈对多态的理解

时间:2023-09-21 19:37:20浏览次数:25  
标签:index 静态 多态 谈谈 理解 jvm 动态 方法

多态概念

多态意思是多种形态,在Java中,同一个行为有不同的表现叫做多态。例如,一个方法在不同的类中有不同的表现形势就是多态的一种。称为动态多态。

多态种类

多态有两种:静态多态和动态多态

静态多态

静态多态是在编译期确定下来的,通过方法的重载实现静态多态。

重载:一个类方法名字相同,参数不同。

动态多态

动态多态是在运行期间确定下来,也就是父类引用指向子类对象,是通过方法重写实现。

具体调用哪个方法是由jvm确定的,jvm通过invokeVirtual index指令实现,index表示方法的索引。jvm通过元空间的方法表找到方法索引。

标签:index,静态,多态,谈谈,理解,jvm,动态,方法
From: https://www.cnblogs.com/xiuer211/p/17720752.html

相关文章

  • Linux学习笔记与个人理解(第一章初识Linux)
     1.云计算的简介1.1云计算的定义云计算是一种基于互联网的计算模式,通过网络提供可按需访问的共享计算资源和服务,包括计算能力、存储空间和应用程序等。1.2云计算的特点弹性伸缩:根据需求动态调整计算资源的规模,实现快速扩展或缩减。资源共享:多个用户共享云计算平......
  • 多态
    1.多态的概述  2.多态的格式和使用1publicclassFuTest1{2publicvoidmethod(){3System.out.println("父类方法");4}5publicvoidmethodFu(){6System.out.println("父类特有方法");7}8}91011publicclassZiTe......
  • 接口和多态
    1.接口就是多个类的公共规范接口是一种引用数据类型,最重要的内容就是其中的:抽象方法如何定义一个接口的格式:publicinterface接口名称{}备注:换成了关键字interface之后,编译生成的字节码文件仍然是:.java-->.class如果是java7,那么接口中可以包含的内容有:1.常量2.抽象方法java8,......
  • Android Framework原理解决大龄程序员的催命符
    有人说对于咱们程序员而言:每过一年,都像是在催命。35岁的坎是每个程序员都逃不过的宿命,每过一年离这个坎就又近一步。所以大家都很焦虑,而这份焦虑恰恰又被各种自媒体,公众号,博客等等平台所利用,每年都有人在说互联网又寒冬了,某某公司又大规模裁员了,Android开发不行了这类的负面的消息......
  • C模拟CPP的方法重写(override)和多态
    1.所谓override,就是子类中重新实现了父类中的某一方法(子类和父类的同一个方法的方法体不同)2.所谓多态,最显著的一个特点就是父类指针指向不同的子类对象时,运行同一个方法会有不同的行为3.C语言模拟继承时,父类对象必须是子类对象的第一个成员4.理解了C的父类结构体指针子类结......
  • 大二快乐日记9.20(关于音乐审美的一些自我理解)
    我报了每周三晚上的音乐鉴赏。一开始以为是超星网课,后来发现是线下课,也好顺便涨涨我的审美。老师讲得不错,讲得很广,各种音乐类型都涉及到了。大多数是一些民族歌曲,中国的,欧洲的都有。我还记得每次建民老师给我们上课之前都会放一些歌曲,这些歌曲一听就有点他们那个时代的感觉。这些......
  • 亿信华辰|汽车行业数据治理解决方案,助力企业数字化转型数据一体化
    随着数字技术的不断革新和应用,汽车行业已转向大数据、新技术寻求生产力突破,以电动化、网联化、智能化、共享化为标志的“汽车新四化”,为汽车行业带来了翻天覆地的变化。如何抓住“新四化”的机会,在汽车产业变革中赢得先机,数据的智能化应用是关键。然而原生态的汽车行业大数据多且杂......
  • Java学习之路--oop--面向对象编程(封装、继承、多态)01
    packagecom.oop.demo01;importjava.io.IOException;//什么是面向对象/*面向对象编程:Object-OrientedPrograming(简称OOP)面向对象编程的本质就是:**以类的方式组织代码,以对象的组织(封装)数据抽象三大特性:封装继承多态*///Demo01-类publicclassDemo01{publicstaticvoid......
  • Java学习之路--oop--面向对象编程(封装、继承、多态)03
    packagecom.oop.demo04;/*封装:设计程序要追求“高内聚,低耦合”属性私有,get/set封装的意义:1.提高程序的安全性,保护数据2.隐藏代码的实现细节3.统一接口4.系统的可维护性增加*/publicclassApplication{publicstaticvoidmain(String[]args){Students1=newS......
  • Java学习之路--oop--面向对象编程(封装、继承、多态)02
    packagecom.oop.demo02;//一个项目应该只存一个main方法publicclassApplication{publicstaticvoidmain(String[]args){//new实例化了一个对象Personperson=newPerson("无言");System.out.println(person.name);}}////类:抽象......