关键区别:重写vs重载在c#中
的关键的区别c#中覆盖和重载之间的区别是被重写的方法调用与其定义的绑定发生在运行时重载方法调用与其定义的绑定发生在编译时.
c#是微软开发的一种通用编程语言。c#的主要优点是它支持面向对象编程(OOP)。OOP的一个支柱是多态性.它赋予一个对象多个行为。多态性中有两种类型,称为覆盖和重载。本文讨论了c#中方法重写和重载之间的区别。
内容
1.概述及关键区别
2.什么是c#中的重写
3.什么是c#中的重载
4.c#中重写和重载的相似性
5.并列比较-表格形式中c#中的重写和重载
6.总结
什么是c#中的重写?
OOP中还有一个重要的概念是继承.它将使用已经存在的类的属性和方法。它提高了代码的可重用性。已经存在的类是基类,新类被称为派生类。在重写多态性时,应该有一个基类和一个派生类。被重写的方法调用与定义的绑定发生在运行时。示例如下。
根据上面的程序,Shape类是基类,它包含显示方法。类Rectangle和Triangle是派生类。这些派生类在它们自己的实现中也有相同的方法显示。
首先,创建引用变量obj。它指向Shape对象。因此,Shape类的display方法将会执行。然后,引用变量指向Rectangle对象。因此,Rectangle类的显示方法将被执行。最后,引用变量指向Triangle对象。因此,将执行Triangle类的display方法。基类的显示方法由派生类的显示方法重写。
要运行的方法在运行时决定。Shape类使用“virtual”关键字编写。Rectangle和Triangle类是用' override '关键字编写的。如果不使用这些关键字,输出将为所有Shape类打印显示方法的内容。
什么是c#中的重载?
在重载中,多个方法名称相同但参数不同。参数可以是不同的类型。这些方法也可以有不同数量的参数。方法重载发生在同一个类中。重载方法与定义的绑定发生在编译时。参考下面的c#程序。
根据上述程序,A类有两个同名的方法sum。它们有不同类型的参数。在主程序中,创建了A的一个对象。sum(2,3)将使用整数调用sum方法。sum(5.1, 7.94)将调用具有双值的sum方法。这两个方法都有相同的名称和相同数量的参数。但是参数类型是不同的。相应地调用所需的方法。如果方法名称和参数类型相同但参数数量不同,也可能发生重载。
c#中重写和重载之间有什么相似之处?
- c#中的重写和重载都是多态性的类型。
c#中重写和重载的区别是什么?
c#中的重写vs重载 |
|
在c#中覆盖是在派生类方法中为基类中已经存在的方法提供一个特定的实现。 | c#中的重载就是用不同的实现创建多个同名方法。 |
参数 | |
在c#重写中,方法有相同的名称,相同的参数类型和相同数量的参数。 | 在c#重载中,方法名称相同,但参数数量不同或参数类型不同。 |
发生 | |
在c#中,重写发生在基类和派生类中。 | 在c#中,重载发生在同一个类中。 |
绑定时间 | |
被重写的方法调用与其定义的绑定发生在运行时。 | 重载方法调用与其定义的绑定发生在编译时。 |
同义词 | |
重写被称为运行时多态,动态多态性或后期绑定. | 重载被称为编译时多态,静态多态性或早期绑定. |
总结- - - - - -覆盖和重载在c#中
重写和重载是两种类型的多态性。c#中重写和重载之间的区别在于,重载方法调用对其定义的绑定发生在运行时,而重载方法调用对其定义的绑定发生在编译时。
参考:
1.库马尔,穆克什。c#角落。可以在这里
2. tutorialspoint.com。“c#多态性。”TutorialsPoint.可以在这里
3. tutorialspoint.com。“c#数据类型。”TutorialsPoint,可以在这里
留下一个回复