编译时多态性和运行时多态性之间有以下区别:
编号 | 编译时多态性 | 运行时多态性 |
---|---|---|
1 | 在编译时多态性中,对方法的调用在编译时被解析。 | 在运行时多态中,对重写方法的调用在运行时被解析。 |
2 | 它也称为静态绑定、早期绑定或重载。 | 它也称为动态绑定、后期绑定、覆盖或动态方法分派。 |
3 | 重载是一种实现编译时多态性的方法,可以定义多个具有不同签名的方法或构造函数。 | 重写是一种实现运行时多态性的方法,可以在派生类中重新定义一些特定的方法或变量。通过使用覆盖,可以对派生类中的基类属性进行一些具体的实现。 |
4 | 它提供快速执行,因为对象的类型是在编译时确定的。 | 与编译时相比,它的执行速度较慢,因为对象的类型是在运行时确定的。 |
5 | 编译时多态性提供的灵活性较低,因为所有事情都是在编译时解决的。 | 运行时多态性提供了更大的灵活性,因为所有事情都在运行时解决。 |