-
2014-10-11 17:18:08
静态多态性指的是程序在编译时,系统就能决定调用哪个函数,如重载。 动态多态性指在运行中才能动态确定操作指针所指的对象,主要通过虚函数和重写来实现。 java 的多态机制遵循一个原则:当父类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定了调用谁的成员方法,但是这个被调用的方法必须是在超类中定义过的,也就是说被子类覆盖的方法 概念理解起来有点抽象。还是看个例子吧。 静态多态性: add(int a); add(int a,int b); add(double a); add(double a,double b); 动态多态性 public class A{ } public class AB extends A{ } public class AC extends A{ } public class test{ go(A a);
更多相关内容 -
Java语言中动态多态性的实现及应用
2021-03-09 07:24:21科技信息 1.引言 多态性(polymorphism)一词来源于拉丁语 ...Java 语言实现了两种多态性:静态多态性和动态多态性。本文重点论述其采用重写机制实现动态多态性的原理,并结合实例讲解动态多态性的应用。 2.关于多态的...科技信息 1.引言 多态性(polymorphism)一词来源于拉丁语 poly(表示多的意思)和 mor-phos(意为形态),其字面的含义是多种形态。在面向对象系统中,多态性是其核心内容之一,反映了人们在求解问题时,对相似性问题的一种求解方法。Java 语言实现了两种多态性:静态多态性和动态多态性。本文重点论述其采用重写机制实现动态多态性的原理,并结合实例讲解动态多态性的应用。 2.关于多态的概念 2.1 继承 继承描述了两个类之间的一种关系。当一个类拥有另外一个类的所有非私有数据和操作时,就称这两个类之间具有继承关系。被继承的类称为父类或超类,由继承而得到的类称为子类。Java 语言不支持多重继承,一个类只能有一个直接父类,父类可以同时拥有多个子类。Java 中用关键字 extends 实现继承。 2.2 重写 在类的继承的过程中,子类可以根据需要对从父类继承来的方法进行重新定义,这时父类和子类中的两个方法功能不同,但是要求两者名字、参数列表和返回类型要一致,就称子类重写了父类的该方法。对于子类重写的父类的方法,若父类的对象调用这个方法时,则调用父类中的定义;若子类的对象使用这个方法时,则调用子类中的定义,父类中的定义如同被 “屏蔽”了。 2.3 抽象类 在 Java 中,提供了抽象类来表示现实世界中的抽象概念,即用抽象类来定义一般状态和行为。在抽象类中通常包括有抽象方法,所谓抽象方法是指抽象类中有定义但没有给出其实现的方法。因此,抽象类不能创建实例对象,只能通过抽象类派生出新的子类,再由子类来创建对象,子类必须提供抽象方法的实现细节。抽象类和抽象方法用 abstract 标识。 代码示例一: abstract class Shape // 定义抽象类 // 定义抽象方法 { abstract public double getArea(); } // 定义子类 Circle 继承抽象类 Shape class Circle extends Shape { private double pi=3.14; public double radius=5; // 实现父类的抽象方法 getArea() public double getArea() { return pi*radius*radius;} } public class TestAbstract { public static void main(String[]args) // 创建子类的实例对象 { Circle c=newCircle(); } } 2.4 接口 接口是 Java 语言提供的另一种重要功能,接口可以具有数据成员 和方法,但与类相比有其特殊性: (1)接口用 interface 声明,数据成员必须初始化,方法必须全部都声明为抽象的。 (2)接口之间的继承为多重继承,即一个接口可以有多个父接口。 (3)接口不能创建实例对象,必须利用接口的特性来建造一个新的类,称之为接口的实现,用 implements 表示,实现接口的类可以创建对象。一个类可以同时实现多个接口。 代码示例二: // 定义接口 Shape2D public interface Shape2D { double pi=3.14; public abstract double getArea(); } // 定义接口 Color public interface Color { public abstract void setColor(Stringstr); } // 定义接口 Shape3D继承 Sh
-
Java中多态性的实现方式
2020-08-29 08:31:44主要介绍了Java中多态性的实现方式,什么是多态?通过简单的一道题目帮大家理解java多态性,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 -
谈谈对Java多态性的一点理解
2020-08-29 14:47:37多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中... -
运行时实现Java的多态性
2021-01-08 19:00:57Java实现运行时多态性的基础是动态方法调度,它是一种在运行时而不是在编译期调用重载方法的机制,下面就继承和接口实现两方面谈谈java运行时多态性的实现。 一、通过继承中超类对象引用变量引用子类对象来实现 举例... -
Java多态性定义与用法实例详解
2020-08-29 07:07:28主要介绍了Java多态性定义与用法,较为详细的分析了多态的概念、功能以及java定义与实现面向对象多态性的相关操作技巧,需要的朋友可以参考下 -
11.java实现动态多态性是通过()实现的 答案:覆盖
2021-03-16 17:38:33CPU应断则存断点址至堆栈也:谓枢喜药要用于耳:枢性气抑各有堂事理技之说非者也:如书时遇学生睡、弄机师不必处分机温控冰箱可藏火易爆之化学品也:×物入方消以生与养地球上多动物类之生物理常,遂擢为野物群系之...CPU应断则存断点址至堆栈也:谓
枢喜药要用于耳:枢性气抑
各有堂事理技之说非者也:如书时遇学生睡、弄机师不必处分
机温控冰箱可藏火易爆之化学品也:×
物入方消以生与养地球上多动物类之生物理常,遂擢为野物群系之特性。(中):×
临市肆间,新企业宜何处?(中):慎
中国汉字之也决矣中国文学之风益归(。。俟:丽华性
主大主自两:自世相处得之于我之反馈,我之言也:贾
中国大学MOOC乘蒙代尔弗莱明模中。,有BP曲线之下说,不是者也:本币轻不为BP曲线移
心试徒为游企业在人既甄时之助术也:贾
于舞台上中选一人,然后可以削之?俟:在菜单里选辑→剪切于键盘上按Ctrl+X 于键盘上按Delete键
行者见事因述一子、一家、他一小组之险历以明地理、风俗、俗云云之童子事也:贾
因计,岁华新生几瘤??(中):四百万
乃重可以。
取易性金融资产时。,按易性金融资之。),借记。),贷记()耳:
我谓资本主义末之社会主义改,取其自小至大之国资本主义之阶文。其第二步要行一企业之公私合莒,此企业也者,性之企业社会主义国营中:误
哲学物自同自科学之物理论也是也:凡与人也
外利素主由革兰氏阳合而释之细菌菌细胞外。(中):贾
古时谓日之何?(中):主之日道日
-
java 多态性详解及常见面试题
2020-09-01 05:30:43主要介绍了java 多态性详解及常见面试题的相关资料,这里对java 的多态性做了资料整理,并列举常见的关于多态性的面试题,需要的朋友可以参考下 -
java中多态性什么意思?
2021-02-12 09:33:32展开全部在面向对象的程序JAVA中,多态性的定义是:同一操作作用于不同的32313133353236313431303231363533e78988e69d8331333366306461类的实例,将产生不同的执行结果。对象根据所接受的消息而做出动作,同样的消息...展开全部
在面向对象的程序JAVA中,多态性的定义是:
同一操作作用于不同的32313133353236313431303231363533e78988e69d8331333366306461类的实例,将产生不同的执行结果。
对象根据所接受的消息而做出动作,同样的消息被不同的对象接受时可能导致完全不同的行为,这种现象称为多态性。
多态性就是多种表现形式,即用"一个对外接口,多个内在实现方法"表示。
多态性包含编译时的多态性、运行时的多态性两大类。 即:多态性也分静态多态性和动态多态性两种。
静态多态性
静态多态性是指定义在一个类或一个函数中的同名函数,它们根据参数表(类型以及个数)区别语义,并通过静态联编实现。
动态多态性
动态多态性是指定义在一个类层次的不同类中的重载函数,它们一般具有相同的函数,因此要根据指针指向的对象所在类来区别语义,它通过动态联编实现。
在用户不作任何干预的环境下,类的成员函数的行为能根据调用它的对象类型自动作出适应性调整,而且调整是发生在程序运行时,这就是程序的动态多态性。举例子说明一下:
扩展资料:
1.多态存在的三个必要条件:
(1)要有继承;
(2)要有重写;
(3)父类引用指向子类对象。
2.多态的好处:
(1)可替换性(substitutability):多态对已存在代码具有可替换性,例如,多态对圆Circle类工作,对其他任何圆形几何体,如圆环,也同样工作。
(2)可扩充性(extensibility):多态对代码具有可扩充性,增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上新加子类更容易获得多态功能。
(3)接口性(interface-ability):多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。
(4)灵活性(flexibility):它在应用中体现了灵活多样的操作,提高了使用效率。
(5)简化性(simplicity):多态简化对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。
参考资料来源:
-
java 多态性详解及简单实例
2020-08-31 09:26:46主要介绍了java 多态性详解及简单实例的相关资料,需要的朋友可以参考下 -
Java静态方法不具有多态性详解
2020-09-02 06:31:29下面小编就为大家带来一篇Java静态方法不具有多态性详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 -
Java运行时多态性的实现
2020-12-25 21:07:06上例中类B和类C是实现接口InterA的两个类,分别实现了接口的方法fun(),通过将类B和类C的实例赋给接口引用a而实现了方法在运行时的动态绑定,充分利用了“一个接口,多个方法”展示了Java的动态多态性。 需要注意... -
Java多态性,什么是Java的多态性
2021-02-19 18:28:58了解Java多态性什么是Java的多态性(向上转型)多态性的前提为什么使用多态性?多态性的使用向下转型instanceof运算符 什么是Java的多态性(向上转型) Java的多态性是事物的多种形态,是运行时行为(向上转型,子类... -
PHP5多态性与动态绑定介绍
2020-12-18 05:48:30我们创建一个接口 Shape,定义一个空的方法 draw(),那么所有的实现类都必须实现这个方法,假设 Shape 有两个实现类:Triangle 和 Rectangle,我们虽然无法通过类似这样的 Java 代码来诠释 PHP 的多态性: ... -
Java(多态性).avi
2021-07-12 17:04:14Java(多态性).avi -
Java面向对象程序设计多态性示例
2020-08-27 20:21:54主要介绍了Java面向对象程序设计多态性,结合实例形式分析了java多态性的概念、原理、定义与使用方法及相关注意事项,需要的朋友可以参考下 -
Java的多态性及例子
2022-03-13 21:45:12而运行时多态是动态的,它是通过动态绑定来实现的,也就是大家通常说的多态性。 Java实现多态有个必要条件:继承、重写和向上转型。只有满足这个条件,开发人员才能够在同一个继承结构中使用统一的逻辑实现代码 -
[Java教程]多态性的表现形式
2021-03-17 10:52:51[Java教程]多态性的表现形式0 2015-09-05 19:00:161.什么是多态面向对象的多态性就是将父类对象应用到子类对象的特征。简单地讲,多态指的就是在应用程序中出现的“重名”现象。多态性允许以统一的风格编写程序,以... -
java中的多态性
2020-07-07 14:11:23java中的多态性 1.基本概念 多态性,是面向对象中最重要的概念,在Java中的体现: 对象的多态性:父类的引用指向子类的对象 可以直接应用在抽象类和接口上 Java引用变量有两个类型: 编译时类型和 运行时类型。... -
java多态性.pdf
2021-10-08 15:41:37java多态性.pdf -
java多态性讲解
2015-12-16 15:43:28可以更清楚的了解java,帮助你认识java的多态性 -
编程语言java多态性.pdf
2021-10-01 22:02:34编程语言java多态性.pdf -
Java的多态性主要表现在______、______和______三个方面。
2021-03-22 17:42:14摘要:并行组的传输以成方式是指数据,态性条并同时行信在多进行道上传输。装修建筑的高内部材料用于为(合成分子可分,表现橡胶橡塑材料材料复合塑料。态性变化静态结构的变网络路由化而可随。...并行组的传输以成... -
JAVA面向对象编程第四章继承性和多态性 课件.ppt
2021-10-14 10:53:32JAVA面向对象编程第四章继承性和多态性 课件.ppt -
java多态性
2014-06-20 14:30:46java中多态性的体现与使用 方法的重写 -
Java程序设计:chapter06 多态性.ppt
2022-06-20 22:21:49Java程序设计:chapter06 多态性.ppt -
Java的多态性
2019-03-27 14:17:57Java的多态性 在java中,多态的核心表现在以下两点: ·方法的多态性: 方法的重载(overload):发生在同一类中,方法名称相同,参数个数、类型不相同。没有权限要求。即同一个方法名称可以根据参数类型或个数不同... -
java_inheritance_and_polymorphism:Java中的继承和多态性练习
2021-05-11 03:42:12java_inheritance_and_polymorphism Java中的继承和多态性练习 -
E-Book-2-:Java 工作 - 多态性
2021-07-10 20:43:25电子书-2- Java 工作 - 多态性 -
Java多态性:Java什么是多态?
2019-07-07 21:58:08多态性是面向对象编程的又一个重要特征,它是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及其各个子类中具有不同的含义。 对面向对象来说...