什么是多态(polymorphism)?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是多态(polymorphism)?相关的知识,希望对你有一定的参考价值。

参考技术A

什么是多态?

可以这么回答:

    父类引用
    引用子类对象

    父类和子类有同名的覆盖方法

    通过父类引用调用这个重写的方法的时候。多数的话就可以称为多态,单数可以说运行时绑定。

使用多态有什么好处?

    类调用者对类的使用成本进一步降低

    封装是让类的调用者不需要知道类的实现细节,多态能让类的调用者连这个类的类型是什么都不必知道,只需要知道这个对象具有某个方法即可。因此,多态可以理解成是封装的更进一步,让类调用者对类的使用成本进一步降低。

    能够降低代码的“圈复杂度”,避免使用大量的if-else

多态在代码中的体现:

输出结果:
猫吃鱼
猫吃鱼(因为描述的是真正的是一只猫)

拓展:

多态性:同一操作作用于不同的对象,可以用不同的解释,产生不同的执行结果,这就是多态性。

多态性通过派生类覆写基类中的虚函数的方法来实现。

多态性分为两种,一种是编译时的多态性,一种是运行时的多态性。

编译时的多态性:编译时多态是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数,返回的类型等信息决定实现何种操作。

运行时的多态性:运行时的多态性就是指直到系统运行时,才根据实际情况决定实现何种操作。

以上是关于什么是多态(polymorphism)?的主要内容,如果未能解决你的问题,请参考以下文章

什么是SNP(Single Nucleotide Polymorphism)?

java之多态(Polymorphic)动态绑定(Dynamic Binding)迟绑定(Late Binding)

C++ 多态性 (polymorphism)

大数据必学Java基础(四十一):面向对象三大特性之一多态(Polymorphism)

base-repair polymorphism 啥意思

Java中的多态polymorphism