2 u013525092 u013525092 于 2016.02.29 10:28 提问

关于Java编译多态性和运行多态性

重载和重写的概念我了解,但是为啥方法的重载体现了编译的多态性,方法的重写体现了运行的多态性?
我是新人,还没有C币,真心求解,谢谢各位~

2个回答

bdmh
bdmh   Ds   Rxr 2016.02.29 10:37

不知道你是否清楚了重载和重写的用法和用途,重载是同名函数,不同参数,重写是子类可以重写父类方法,运行期,根据具体实例对象,去执行相应的对象的方法,一个父类对象,可能实际是子类对象,所以运行时,实际会执行子类的的重写的方法

u013525092
u013525092 谢谢您的解答,不知道我这样理解对不对,在实现多态时需要用父类来引用子类的对象,也就是说虽然是同一个父类,在运行的时候根据引用的子类对象的不同,得到的实际结果是不同的。请问编译时的多样性您是怎么理解的?
2 年多之前 回复
wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.02.29 10:51

行为重载方法之间是本质上是不同的方法声明,在编译时就可以确定具体是那个类的哪个方法。而重写的方法本质上有相同的方法声明,表象无法区分是谁的方法,只有到了运行时才能确定具体的类型(是父类,还是某个实现子类),才能确定具体调用的是哪个类的方法。

u013525092
u013525092 谢谢解答!我理解啦
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java的编译时多态和运行时多态
java的编译时多态和运行时多态,保证一看就会
C++实验之多态性和虚函数
多态性和虚函数
c++多态性与虚函数练习题
(一)实验目的 1、理解多态性的概念。 2、熟练掌握虚函数的作用及其使用方法。 3、掌握静态关联和动态关联的概念和用法。 4、理解纯虚函数和抽象类的概念和用法。 (二)实验内容 1、定义一个类A,在A中有两个私有的整型变量a和b,定义构造函数对a和b进行初始化,并实现成员函数getA()和getB()分别取得a和b的值。定义类B为A的公有继承类,并定义同名成员函数getA(),使其返回a的2倍。主函数中声明类B对象,调用类B中的getA()并将结果输出。
C++实验之多态性实验报告
(1)掌握运算符重载的方法。 (2)学习使用虚函数实现动态多态性。
C++实验六 多态性和虚函数的应用 课程 实验报告
C++实验六 多态性和虚函数的应用 课程 实验报告 作业参考的良品!
C++多态性实验报告
(1)在《C++面向对象程序设计》第6章例6.3的基础上作以下修改,并作必要的讨论。 ○1把构造函数修改为带参数的函数,在建立对象初始化。 ○2先不将析构函数声明为virtual,在main函数中另设一个指向Circle类对象的指针变量,使它指向变量,使它指向grad1。运行程序,分析结果。 ○3不作第②点的修改而将析构函数声明为virtual,运行程序,分析结果。 (2)声明抽象基类Shape,由它派生出3个派生类:Circle(圆)、Rectangle(矩形)、Triangle(三角形),用一个函数printArea分别输出以上三者的面积,3个图形的数据在定义对象时个给定。
面向对象实验3类的多态
进一步掌握C++中的继承机制,掌握虚函数的声明、定义及用法; 在理解虚函数实现动态绑定机制的基础上,理解虚函数生效的前提——通过指向派生类对象的基类指针或通过引用派生类对象的基类引用调用虚函数; 了解引入纯虚函数的必要性和抽象类的“接口”作用;从而全面理解面向对象技术中的“多态性”这一大特性。
实验二:java多态性.rar
实验二:java多态性.rar实验二:java多态性.rar
vc++第五章 多态性和虚函数课件
多态性和虚函数 理解运行是的多态性和变异时的多态性,运算符重载的两种方法
单核苷酸多态性与疾病关联研究及meta分析
这个主要是为SNP与疾病相关性分析的初学者提供具体可行的步奏,我觉得比较好,所分享出来,希望需要的人能用到起。