OverRiding Vs PolyMorphism

时间:2011-09-20 17:38:40

标签: polymorphism override method-overriding

两者有什么区别?

具有myMethod(int a)的超类和具有相同方法的继承类, 这是压倒一切还是多态?

我很清楚b / w覆盖和重载的区别,但多态性和覆盖似乎是一样的。或者是他们?

4 个答案:

答案 0 :(得分:9)

覆盖是指在对象上调用方法时,调用子类中与超类中的方法具有相同签名的方法。

多态性是您在运行时不确定对象类型并调用最具体方法的地方。因此,调用的方法的行为可能会有所不同,具体取决于运行时的对象类型。

Overriding是一种多态,以及重载和动态(后期)绑定。您可以查看更多详细信息here about the different types.

答案 1 :(得分:1)

我明天要参加软件体系结构考试,这是我从阅读中学到的东西。

多态性是面向对象编程的概念,它允许将字段(在这种情况下为对象)从一种形式更改为另一种形式。多边形=多个,变形=变化。

覆盖方法本质上是方法的动态绑定,它允许在运行时更改方法。由于方法的功能会随着时间的推移而发生变化,因此它是一种多态形式。

我从这里取得了一些事实- https://beginnersbook.com/2013/03/polymorphism-in-java/

答案 2 :(得分:1)

方法的覆盖只是多态性的一种类型。在下面的文章中非常清楚地提到了它。下面提供了链接。

Overriding vs Polymorphism

答案 3 :(得分:0)

是的...通过使用覆盖,我们实现了多态的属性......当你有多个时 从单个父类派生的类...通过使用重写...我们定义派生类方法的功能,因为它们是从同一个父派生的,我们展示了多态的属性..