onesimple

什么是c++中的多态

同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。亦所谓“一个接口,多种方法”。

  • 引言
    多态(Polymorphism)、封装(Encapsulation)和继承(Inheritance)是面向对象思想的“三大特征”,此处俗称“面向对象的三板斧”,而多态是三板斧中最厉害的杀招,是面向对象最精微的内功,可以说,不理解多态就不懂得什么是面向对象。

  • 定义
    同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。
    简单地概括为“一个接口,多种方法”。

  • 类别
    (1)编译时的多态性。
      编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。(参考我的博文《c++中的函数重载》)
    (2)运行时的多态性。
      运行时的多态性就是指直到系统运行时,才根据实际情况决定实现何种操作。C++中,运行时的多态性通过虚成员实现。

  • 作用
    多态的目的则是为了接口重用。也就是说,不论传递过来的究竟是那个类的对象,函数都能够通过同一个接口调用到适应各自对象的实现方法。

🐶 五百年雨打的石桥,有你走过 🐶