我对面向对象中多态概念的理解

我对面向对象中多态概念的理解

转载请注明出处:https://blog.csdn.net/jpch89/article/details/88343906


我认为可以从两种角度理解多态,它们其实是同一个意思的两种表述形式。

  • 站在调用方的角度来讲:相同的操作,作用于不同类型的对象,可以产生不同的效果。
    比如同样的加法操作,作用于整数上,就是数学的相加;作用于字符串上,就是字符串的拼接。

  • 站在被调用方的角度来讲:不同类型的对象,只要实现了相同的接口,就可以用相同的方式调用。我们不关心对象的类型,即不关心它是什么。我们只关注对象实现的接口,即只关注它能做什么。这就是所谓的 鸭子类型,只要一个东西走起来像鸭子,叫起来也像鸭子,我就把它当成鸭子来招呼。也可以理解为能力比出身更重要。具备多态性质的代码,几乎没有类型检查,能够大大增加代码的灵活性和可扩展性。


完成于 2019.03.08

猜你喜欢

转载自blog.csdn.net/jpch89/article/details/88343906