关键的区别–在c中重写与重载#
C中重写和重载之间的关键区别在于,重写方法调用对其定义的绑定发生在运行时,而重载的方法调用绑定到其定义发生在编译时。
C是微软开发的一种通用编程语言。C的主要优点是它支持面向对象编程(OOP)。OOP的一个支柱是多态性。它使一个对象具有多种行为。多态性有两种类型,称为重写和重载。本文讨论了C中方法重写和重载之间的区别。
目录
1. 概述和主要区别
2. 在C中重写是什么#
3. 什么是C语言中的重载#
4. C中重写和重载的相似性#
5. 并排比较-以表格形式在C中重写与重载
6.摘要
什么是在c中重写#(overriding in c#)?
在OOP中还有一个重要的概念是继承。它使用已经存在的类的属性和方法。它提高了代码的可重用性。已经存在的类是基类,新类称为派生类。在重写多态性时,应该有一个基类和一个派生类。重写的方法调用与定义的绑定发生在运行时。一个例子如下。
根据上面的程序,类形状是基类,它包含显示方法。类Rectangle和Triangle是派生类。这些派生类在它们自己的实现中也有相同的方法显示。
首先,创建引用变量obj。它指向形状对象。因此,Shape类的display方法将被执行。然后,引用变量指向矩形对象。因此,将执行Rectangle类的display方法。最后,参考变量指向三角形对象。因此,将执行Triangle类的显示方法。基类显示方法被派生类的显示方法重写。
要运行的方法在运行时决定。Shape类是用“virtual”关键字编写的。矩形和三角形类是用“override”关键字编写的。如果不使用这些关键字,输出将全部打印Shape类的显示方法的内容。
什么是c中的过载#(overloading in c#)?
在重载中,多个方法具有相同的名称,但具有不同的参数。参数可以是不同类型的。这些方法也可以有不同数量的参数。方法重载发生在同一个类中。重载方法与定义的绑定发生在编译时。参考以下C程序。
根据上面的程序,类A有两个同名的方法sum。它们有不同类型的参数。在主程序中,创建了一个对象。sum(2,3)将使用整数调用sum方法。sum(5.1,7.94)将使用双精度值调用sum方法。两个方法具有相同的名称和相同数量的参数。但参数类型不同。相应地调用所需的方法。如果方法名和参数类型相同但参数数目不同,也可能发生重载。
什么是c语言中重写与重载的相似性#(the similarity between overriding and overloading in c#)?
- C中的重写和重载都是多态性的类型。
压倒一切(overriding)和c中的过载#(overloading in c#)的区别
在C中重写vs重载# | |
重写是在派生类方法中为基类中已经存在的方法提供特定的实现。 | C中的重载是用不同的实现创建具有相同名称的多个方法。 |
参数 | |
在C#重写中,这些方法具有相同的名称、相同的参数类型和相同数量的参数。 | 在C#重载中,方法具有相同的名称,但参数数目不同,或者参数类型不同。 |
发生 | |
在C#中,重写发生在基类和派生类中。 | 在C中,重载发生在同一个类中。 |
装订时间 | |
重写的方法调用绑定到其定义发生在运行时。 | 重载方法调用对其定义的绑定发生在编译时。 |
同义词 | |
重写称为运行时多态性、动态多态性或后期绑定。 | 重载称为编译时多态性、静态多态性或早期绑定。 |
总结 - 压倒一切(overriding) vs. c中的过载#(overloading in c#)
重写和重载是多态性的两种类型。在C中重写和重载的区别在于,被重写方法调用对其定义的绑定发生在运行时,而重载方法调用对其定义的绑定发生在编译时。