2011-09-20 24 views
2

两者有什么区别?OverPiding与PolyMorphism

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

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

回答

6

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

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

覆盖是一种多态,伴随着重载和动态(迟)绑定。您可以通过使用重载查看更多详情here about the different types.

+0

这意味着不同的是,在重写,我知道什么方法将被调用,但如果多个孩子继承同样的类,我不知道什么类型的孩子会被调用,它是多态的。所以基本上,多态是一个使用覆盖的概念? 我是否正确? – Kraken

+0

差不多。重写是实现多态的一种方式,多态是这种重写的结果。多态性只是一个原则,可以通过覆盖,重载和动态(后期)绑定来实现。 – adamjmarkham

+1

链接已死/ 404。 – gerleim

0

是...我们实现多态的财产......当u有多个 类使用压倒一切从一个父类派生......那里......我们定义派生类的方法的功能,因为他们是从同一父母派生我们显示多态性的属性..