Java 中是否存在重载 编译多态(设计多态)这一说法?

2016-09-12 12:36:01 +08:00
 bojun1995

最近看 Thinking In Java 明确多态是运行时绑定、后期绑定、动态绑定。
而多态的三个必要条件是:
1 )继承
2 )重写
3 )父类引用类型指向子类对象
从这里分析多态似乎跟重载没有关系? 有点懵逼,求解答

2347 次点击
所在节点    Java
10 条回复
zhiyuan91
2016-09-12 12:54:31 +08:00
多态跟重载没关系
SoloCompany
2016-09-12 13:13:23 +08:00
overload 编译时绑定
override 运行时绑定
请先搞清楚你想要的概念
XhstormR
2016-09-12 13:15:30 +08:00
重写和重载都属于多态吗?
bojun1995
2016-09-12 13:19:29 +08:00
@SoloCompany 这个我懂,我想知道的是重载(设计多态)算多态的一种吗?
SoloCompany
2016-09-12 13:36:03 +08:00
XhstormR
2016-09-12 13:46:00 +08:00
@zhiyuan91 网上说重载是静态多态。
bombless
2016-09-12 15:21:39 +08:00
不重载你子类型不是跟父类型行为一样了么 233
不过有些人把这叫做覆写
hxsf
2016-09-12 15:41:16 +08:00
@bombless
楼主说的 是 方法的 *重载* 如 boolean func(int a) 和 boolean func(double a),
你说的是子类 *重写* 父类方法。
wizardforcel
2016-09-12 18:27:55 +08:00
多态:静态多态+动态多态。

静态多态:参数化多态+非参数化多态( ad-hoc )

动态多态:虚函数

参数化多态:泛型

非参数化多态:重载

对应到 java 中,三个特性, overload 、 override 、 generic 算作多态。
bojun1995
2016-09-12 18:49:42 +08:00
@wizardforcel 谢谢你

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/305631

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX