重写、重载到底是不是多态?

重写、重载到底是不是多态?

重写(overriding)

**规则:**方法名必须相同、参数必须相同、返回值一致,或者是其父类返回值的子类、访问权限不能大于父类。

需要继承父类,必须继承父类才会存在重写,不然你重写个 de,这里很重要。

重载(Overloading)

**规则:**在同一个类中方法名相同,参数数量不同、顺序不同、类型不同

这里需要的重点同类同名称

多态

百度百科:指为不同数据类型的实体提供统一的接口。
计算机程序运行时,相同的消息可能会送给多个不同的类别之对象,而系统可依据对象所属类别,引发对应类别的方法,而有不同的行为。简单来说,所谓多态意指相同的消息给予不同的对象会引发不同的动作
多态也可定义为“一种将不同的特殊行为和单个泛化记号相关联的能力”。
多态还分为,动态多态、静态多态,具体看
百度百科

多态存在的3个必要条件:
继承、重写、向上转型(父类引用指向了子类对象)

扩展:向下转型(子类引用指向父类对象)

需要具体参考的同学:向上转型、向下转型

自我理解:一种东西多种形态,比如接口,在一个接口里面我可以定义多个方法来声明我这个接口,是什么也可以是什么。。。

重写、重载到底是不是多态?

答案:
个人误区,我认为重写不是多态因为它先有的继承,我以为它不属于多态,其实不然,它们的关系不是这样,应该这么说。

重写必须(属于)是继承,重写是多态的一种表现形式。

那么重载呢?
个人认为是,首先百度百科上是这么写的,重载(overloading)属于静态多态,其次个人理解的多态是一个东西多种形态,那么重载也是多态,因为重载就是同类同名称的不同形态,只不过他是一种特殊的多态,重载是一个类的行为的多态性的体现。
重载这里我参考了:重载是不是多态?

你可能感兴趣的:(javase编程,java,多态,重写,重载)