多态的理解?多态的原理
时间: 2024-06-07 18:12:19 浏览: 180
进一步理解Java中的多态概念
5星 · 资源好评率100%
多态分为编译时多态和运行时多态。编译时多态主要是指方法的重载,即根据参数列表的不同来区分不同的函数。这种多态在编译之后就会变成不同的函数,不能说是真正的多态。而运行时多态则是通过动态绑定来实现的,也就是我们所说的真正的多态性。它是一种使用对象的方法,子类重写父类方法,调用不同子类对象的父类方法的方式。在运行时,根据对象的实际类型来决定调用哪个方法。这种多态性是通过虚函数机制实现的,当父类类型的指针指向子类对象时,使用父类的指针去调用子类中重写了的父类中的虚函数时,会调用子类重写过后的函数。在父类中需要用virtual关键字声明虚函数,在子类中重写时则不需要加virtual关键字。虚函数的实现是通过虚函数表来实现的,这个表中放了虚函数的地址。当子类继承父类时,子类会继承父类的虚函数表,并将重写的函数地址替换掉继承的虚函数表中的地址。虚函数的使用会增加访问内存的开销,降低效率。
阅读全文