2016 - 2024

感恩一路有你

java中是怎么实现多态的 什么是多态?java中如何实现多态?

浏览量:2917 时间:2023-01-12 20:18:57 作者:采采

java中是怎么实现多态的 什么是多态?java中如何实现多态?

什么是多态?java中如何实现多态?

多态性分为编译时多态性和运行时多态性。

1.编译时多态性实际上是一种函数名相同但签名不同的方法重载。值得注意的是,签名不包括方法返回值。换句话说,两个方法有相同的函数名和参数,但返回值不同,编译器返回错误。

2.运行时多态性实际上与继承和接口实现有关。子类可以重写父类的非最终、非静态、非私有方法,或者实现接口方法。在运行时,将实例动态绑定到父类或接口的引用,那么jvm如何知道调用哪个子类的实例的对应方法呢?这是你问的问题。在——Java中,对象在jvm中有描述元数据。对象头和当前实例的类型信息存储在对象头中。调用时,jvm可以根据这个类型准确地找出使用哪个子类方法。

什么是多态?java中如何实现多态?

百度搜索圈T社区免费行业视频教程

多态性意味着重载和重写。重载发生在一个类中。重写发生在子类中,这意味着子类重写了父类的相同名称。你不用那么清楚自己刚学了一门语言是什么,知道怎么用就行了。要想真正理解一些问题,短时间内是不可能的,比如接口。没有几年的工作经验,你是无法真正理解什么是接口的,甚至有些人工作了四五年都没搞清楚。

重载的功能具有相同的方法名。返回的类型有不同的参数(包括数字和类型)。

重写具有相同的特征、方法名、返回类型和参数,并且必须出现在子类中。

该语言允许某种类型的引用变量引用子类的实例,并可以对该引用变量进行类型转换。

animal animal=new Dog() //引用变量Animal引用一个Animal子类Dog的实例。

Dog Dog=(Dog)Animal //将动物类型转换为狗类型。

生物创造=动物//向上转化,将动物型转化为创造型。

Animal=new Cat() //引用变量Animal引用另一个animal子类Cat的实例。

注:这里的生物是指生物。

2.如果引用变量转换为子类类型,则称为向下转换;如果引用变量被转换为父类类型,则称为向上转换。

3.在转换参考变量的类型时,会有各种限制。而且在通过引用变量访问它所引用的实例的静态属性、静态方法、实例属性、实例方法,以及从父类继承的方法和属性时,Java虚拟机采用了不同的绑定机制。

4.成员变量和静态方法根据引用变量声明的类型进行静态绑定;实例方法是根据引用变量引用的实例动态绑定的。

例如,对于以下代码:

父亲f=新儿子()

(quot;quot; )

(quot;quot; )

()

()

运行时将输出以下结果:

儿子法

静态父方法

班级父亲{

字符串变量=

什么是多态?java中如何实现多态?

如果父类指针指向子类对象,那么它就是多态的。

比如A是父类,B和C都继承自A。

B b=新B()

所以A a=b

它是多态的。

方法 实例 变量 类型 子类

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。