2 weixin 41423378 weixin_41423378 于 2018.09.14 20:23 提问

新手 java 多态

c++ 的多态里面 父类函数要加virtual设置为虚函数。
java 里面是不是 不用加关键字直接重写父类函数就好了,
还有发生多态后,如果要在类的外部调用被重写的父类函数要怎么做呢

3个回答

caozhy
caozhy   Ds   Rxr 2018.09.14 22:20
已采纳

第一个问题,不需要。但是可选的,可以在函数上加上@override注记。
第二个问题,反射得到基类方法,然后直接调用。这种方式打破了封装性,能用到的场景非常罕见。

caozhy
caozhy 之所以java可以实现反射,是因为一个类有什么字段、方法,一个方法有什么参数返回值之类的信息是编译在代码里的。而c++的程序没有这些元数据。
6 天之前 回复
caozhy
caozhy 回复weixin_41423378: 反射就是运行时查询类型,创建对象和动态调用方法。类似mfc的rtti机制,不过后者非语法特征,而是通过宏实现的。
6 天之前 回复
weixin_41423378
weixin_41423378 反射到底是干嘛的 看了半天没看懂
6 天之前 回复
weixin_41219675
weixin_41219675   2018.09.15 12:44

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
反射就是不需要new 拿着类的字节码文件对象,解剖它,从而获取其中的构造,成员等,进而可以调用执行。

qq_40631940
qq_40631940   2018.09.17 17:33

如果想调用父类的方法,super.方法名就行,在覆写的过程中在子类方法名上加@override ------善知软件培训

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
初学者是如何理解多态
摘要:北京领卓转载
python中多态与java中多态
python中多态  A function that can operate on more than one type. If all the operations in a function can be applied to a type, then the function can be applied to a type. 一个函数可以使用在不同的类型数据上称为多态 ,我顿时想到
Java的多态(静态绑定和动态绑定)
参考资料:http://blog.csdn.net/lingzhm/article/details/44116091java多态具体表现形式有两种:方法的重写和方法的重载。先来看一段程序(此段代码摘自上述链接中):public class TestExtendsField { public static void main(String[] args) { Base b=ne
[java面试]关于多态性的理解
运行时多态性是面向对象程序设计代码重用的一个最强大机制,Java多态性的概念也可以被说成“一个接口,多个方法”。Java实现运行时多态性的基础是动态方法调度,它是一种在运行时而不是在编译期调用重载方法的机制。方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表
JavaWeb接口的多态现实
JavaWeb接口的多态现实
Java基础之多态的详细解释
http://www.cnblogs.com/xdp-gacl/p/3644035.html 一、面向对象最核心的机制——动态绑定,也叫多态    1.1.通过下面的例子理解动态绑定,即多态 1 package javastudy.summary; 2 3 class Animal { 4 /** 5 * 声明一个私有的成员变量nam
Java-面向对象编程-三大特性之多态
我们前面已经介绍了面向对象编程的三大特性之二,今天就介绍最后一个特性-多态。 什么叫多态?从字面上理解就是多种形态,即对同一个客体,可以有多种不同的形式。就好像糖一样,有多种口味,你想吃什么口味的就可以吃什么口味。但在程序中,却不是你想要怎样就怎样。更多的是需要怎样去做就怎样去做。来一个算是比较官方的解释:在面向对象语言中,接口的多种不同的实现方式即为多态。引用Charlie Calverts对多
Java三大特性——继承,封装和多态
总结Java三大特性:继承、封装和多态
Java多态细节与instanceof关键字
多态无继承,无多态 多态作为OOP三大特性之一,在现实生活中,表现为一个对象可以有多种形态 OOP语言中也就是一个对象对应着不同类型,代码的直接体现在于父类或者接口的引用指向其子类的对象 好处 提高了代码的扩展性,前期定义的代码可以使用后期的内容 比如下面添加其他具体动物类,都可以实现eat()方法,父类引用型变量绑定通过不同的对象调用同名的不同方法 弊端 前期定义的内容不能使用后期子类的特
java接口实现多态
多态: 父类的引用类型变量指向了子类的对象或者是接口类型的引用类型变量指向了接口实现类 的对象。 实现关系下的多态: 接口  变量  = new  接口实现类的对象。 interface Dao{ //接口的方法全部都是非静态的方法。 public void add(); public void delete(); } //接口的实现类 class U