A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李彦来 中级黑马   /  2014-7-11 10:37  /  2722 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

多态的先决条件是继承或实现:子类继承父类,子类覆盖父类,父类指向子类(接口类似)

但是重载是在当前类里不同参数个数,不同参数类型的方法,不存在覆盖和指向啊,这就和多态没什么关系吧?


所以我想问问重载是不是多态?或者是不是多态的特殊类型啊?

15 个回复

倒序浏览
个人理解是没什么关系
回复 使用道具 举报
重载和多态没什么关系吧
回复 使用道具 举报
重载是方法的重载,多态是父类的引用指向子类对象。二者应该没什么关系。
回复 使用道具 举报
不是,重载是一个类里面的事,多态是多个类里面的事情
回复 使用道具 举报
多态的三大前提:   必须要要继承或者接口实现,  方法重写,父类引用指定子类对象.(多态可以理解为事物的多种形态)
人   =  学生
人  =   教师
.................................
学生和教师都是人的不同形态
回复 使用道具 举报
lc2015 中级黑马 2014-7-12 01:08:58
7#
重载体现在一个类中,如果出现了两个或者两个以上的同名函数,它们的参数的个数,或者参数的类型不同;
多态是体现在父类引用或者接口的引用指向了自己的子类对象。
回复 使用道具 举报
都在扯.多态是事物的多种形态,不仅仅在子父类中.重载就是典型的多态,一个名字,多种形态,老毕在视频里说的很清楚.但是我们说大都是对象的多态,也就是子父类间的覆盖.
回复 使用道具 举报
谭荣强 发表于 2014-7-12 18:11
都在扯.多态是事物的多种形态,不仅仅在子父类中.重载就是典型的多态,一个名字,多种形态,老毕在视频里说的很 ...

但是多态是有前提的啊?重载没有吧?
回复 使用道具 举报
如果这样的号。可以除掉一个名词了。
回复 使用道具 举报
李彦来 发表于 2014-7-12 19:03
但是多态是有前提的啊?重载没有吧?

重载有重载自己的前提
回复 使用道具 举报
sugar 中级黑马 2014-7-12 21:45:12
12#
重载:类中有多个函数,这些函数有相同的功能,函数名相同,参数列表不同,返回值类型可以相同,可以不同;
回复 使用道具 举报
sugar 中级黑马 2014-7-12 21:46:25
13#
多态:父类引用指向子类对象;
回复 使用道具 举报
sing 中级黑马 2014-7-12 23:17:33
14#
反正知道不一样
回复 使用道具 举报
不是,多态是同一个对象在不同时刻表现出来的多种状态。比如:水可以是冰,可以是水,可以是水蒸汽。
多态的前提:                
A:要有继承或者实现关系                
B:要有方法的重写 (注意是方法重写不是重载)
C:要有父类引用或者父接口引用指向子类对象
方法重写和重载区别
方法重写:在子父类中,方法声明相同(返回值类型,方法名,参数列表都相同)
方法重载:在同一个类中,方法声明相同,参数列表不同,与返回值类型无关。可以改变返回值类型。
所以多态和重载没有关系
回复 使用道具 举报
你之所以问这个问题是因为没有理解多态存在的意义——

多态是由于类与类之间出现了继承关系而导致的。

而类则是对现实生活中事物的描述。

而方法(函数)则仅仅是现实生活中事物的一种行为。

多态之所以有前提,是因为需要类与类之间产生关系才能出现多态。

而函数之间的重载,只是因为有相同行为,但参与行动和操作的参数不同而导致的。

也就是说——

重载的本质是同一种方法,但参与操作的数据不同。

而多态则是“事物存在的多种形态”,即必须有事物与事物之间存在关系才能产生的概念。


这是两种完全不同的概念。

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马