问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

多态分为哪两中

发布网友 发布时间:2022-03-30 20:13

我来回答

4个回答

懂视网 时间:2022-03-31 00:34

多态的表现形式有:

  

  1、方法重载:通常是指在同一个类中,相同的方法名对应着不同的方法实现,这些方法名相同的方法其区别在于他们需要的参数不同;

  

  2、方法重写:方法重写主要用于父类和子类间,子类重写父类的方法,只是对应的方法实现不同,其方法名和参数都相同;

  

  3、抽象类:在java语言中,一个类中的方法只给出了标准,而没有给出具体的实现方法,这样的类就是抽象类。例如父类就是抽象类,它不会被实例化的类;

  

  4、接口: 在多态机制中,接口比抽象类使用起来更加方便。而抽象类组成的集合就是接口。

  

  

热心网友 时间:2022-03-30 21:42

在JAVA中有两种多态是指:运行时多态和编译时多态。

关于类的多态性简介如下:

多态(polymorphism)意为一个名字可具有多种语义.在程序设计语言中,多态性是指”一种定义,多种实现”.例如,运算符+有多种含义,究竟执行哪种运算取决于参加运算的操作数类型:

1+2 //加法运算符

“1” + “2” //字符串连接运算,操作数是字符串

多态性是面向对象的核心特征之一,类的多态性提供类中成员设计的灵活性和方法执行的多样性.

1、类多态性表现

(1)方法重载

重载表现为同一个类中方法的多态性.一个类生命多个重载方法就是为一种功能提供多种实现.编译时,根据方法实际参数的数据类型\个数和次序,决定究竟应该执行重载方法中的哪一个.

(2)子类重定义从父类继承来的成员

当子类从父类继承来的成员不适合子类时,子类不能删除它们,但可以重定义它们,使弗雷成员适应子类的新需求.子类重定义父类成员,同名成员在父类与子类之间表现出多态性,父类对象引用父类成员,子类对象引用子类成员,不会产生冲突和混乱.

子类可重定义父类的同名成员变量,称子类隐藏父类成员变量.子类也可以重定义父类的同名成员方法,当子类方法的参数列表与父类方法参数列表完全相同时,称为子类方法覆盖(override)父类方法。覆盖父类方法时,子类方法的访问权限不能小于父类方法的权限。

由于Object类的equals()方法比较两个对象的引用是否相等而不是值是否相等,因此一个类要覆盖Object类的equals()方法,提供本类两个对象比较相等方法.

覆盖表现为父类与子类之间方法的多态性.java 寻找执行方法的原则是:从对象所属的类开始,寻找匹配的方法执行,如果当前类中没有匹配的方法,则逐层向上依次在父类或祖先类中寻找匹配方法,直到Object类.

2、super 引用

在子类的成员方法中,可以使用代词super引用父类成员.super引用的语法如下:

super([参数列表]) //在子类的构造方法体中,调用父类的构造方法

super.成员变量 //当子类隐藏父类成员变量时,引用父类同名成员变量

super.成员方法([参数列表]) //当子类覆盖父类成员方法时,调用父类同名成员方法

*注意:super引用没有单独使用的语法

3、多态性有两种:

1)编译时多态性

对于多个同名方法,如果在编译时能够确定执行同名方法中的哪一个,则称为编译时多态性.

2)运行时多态性

如果在编译时不能确定,只能在运行时才能确定执行多个同名方法中的哪一个,则称为运行时多态性.

方法覆盖表现出两种多态性,当对象获得本类实例时,为编译时多态性,否则为运行时多态性,例如:

XXXX x1 = new XXXX(参数列表); //对象获得本类实例,对象与其引用的实例类型一致

XXX xx1 = new XXX(参数列表);

x1.toString(); //编译时多态性,执行XXX类的方法.

xx1.toString(); //编译时多态性,执行XXXX类覆盖的方法.

XXXX为XXX的父类.

由于子类对象既是父类对象,父类对象与子类对象之间具有赋值相容性,父类对象能够被赋值为子类对象.例如,

XXXX x2 = new XXX(参数列表); //父类对象获得子类实例,子类对象即是父类对象

x2.toString(); //运行时多态

x2声明为父类对象却获得子类XXX的实例,那么x2.toString()究竟执行父类方法还是执行子类覆盖的方法呢?

这分为两种情况:

取决于子类是否覆盖父类方法.如果子类覆盖父类方法,则执行子类方法;

如果没有覆盖,则执行父类方法.

在编译时,仅仅依据对象所属的类,系统无法确定到底应该执行那个类的方法,只有运行时才能确定,因此这是运行时多态.

父类对象并不能执行所有的子类方法,只能执行那些父类中声明\子类覆盖的子类方法.

热心网友 时间:2022-03-30 23:00

静态和动态之分,编译时多态是静态多态,在编译时就可以确定对象使用的形式。运行时多态是动态多态,其具体引用的对象在运行时才能确定。

热心网友 时间:2022-03-31 00:35

java 中多态的表现形式有两种 子类与父类继承(extends) 和接口实现方式(子类实现接口implement)
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果手机微信怎么换漂亮字体(苹果手机微信怎么换行输入) 有什么好用的app转换字体 手写转文字的软件 erp可以看评论地址吗 淘宝评论url是什么意思? 揭秘:码牌支付风控升级,背后真相揭秘 电脑电视直播软件哪个好用什么软件好电脑看电视直播 潼南子同街学区是哪些 三极管BU406价格和参数? 火锅料放在冰柜忘了插电一个星期给会坏了吗 火锅的设备有哪些 这个电话诈骗的目的是什么?需要报案吗? 4009795511什么电话,总是打过来,是诈骗电话吗? 4OO9O95511是哪里电 请问接4009095511电话,回有什么后果? 4009095511为什么总是打电话? 4009095511是什么号码? 4009095511这电话打给我好几天了,今天一接说了一... 4009095511是哪里的电话? 4009095511是什么电话把身份证号和银行卡号报给他... 4009095511电话,是什么电话? 4009095511是平安电话吗? 4009095511是什么电话? 4009095511是什么电话号码? 怎么调分辨率电脑 电脑怎么调整分辨率 iPad耳机丢了怎么打开寻找耳机模式 ipad耳机模式怎么切换成扬声器 苹果平板电脑耳机模式怎么变换 苹果平板怎么调耳机模式? 一篇200字左右描写景物的作文。 电脑按键的作用 彩虹六号erc7的技能什么意思 没看懂 求大佬解读 彩虹六号韩国干员vigil台词,白裤裆寒冬一击是什么... 做软件测试实习期工资2500,转正后,一般工资多少? 今天去面试软件测试工程师说实习底薪一千,实习两... 昨天去应聘软件测试工程师岗位,得到了offer,但是... 软件测试怎么样?薪水呢? 今天收到一家企业的录取通知,软件测试,长沙实习... 哈尔滨 软件测试工程师 薪资待遇 软件工程师多少钱一个月 我想知道,像我们刚毕业出来的应届生找软件测试工... 成都学软件测试出来工资多少? 大连东软的对日软件测试工程师咋样?日语一级,没... 软件测试工程师就业前景如何? 北京东软集团,招我去面试软件测试工程师,说是移... 星网锐捷软件测试员工资怎么样?试用期和转正后的... 纬创资通(昆山)软件测试工程师待遇怎么样? 华为的软件测试工程师待遇怎么样 昨天去应聘软件测试工程师岗位,谈的是试用期的工... win10在输入密码界面卡死怎么办