多态可以是静态的也可以是动态的。在静态多态性中,对函数的响应是在编译时确定的。在动态多态中,它是在运行时决定的。
在编译期间将函数与对象的链接称为早期绑定。也称为静态绑定。C#提供了两种技术来实现静态多态性。它们是函数重载和运算符重载。
在函数重载中,可以在同一作用域中为相同的函数名称提供多个定义。函数的定义必须在参数列表中的参数类型和/或数量上彼此不同。
以下是显示如何在C#中实现函数重载的示例-
using System; namespace PolymorphismApplication { class Printdata { void print(int i) { Console.WriteLine("Printing int: {0}", i ); } void print(double f) { Console.WriteLine("Printing float: {0}" , f); } void print(string s) { Console.WriteLine("Printing string: {0}", s); } static void Main(string[] args) { Printdata p = new Printdata(); //调用print打印整数 p.print(5); //调用print来打印float- p.print(500.263); //调用print以打印字符串 p.print("Hello C++"); Console.ReadKey(); } } }
输出结果
Printing int: 5 Printing float: 500.263 Printing string: Hello C++
本文向大家介绍什么是C#中的运行时多态?,包括了什么是C#中的运行时多态?的使用技巧和注意事项,需要的朋友参考一下 运行时多态性具有方法覆盖,也称为动态绑定或后期绑定。它由抽象类和虚函数实现。 抽象类 抽象类包含抽象方法,这些方法由派生类实现。 让我们看一个实现运行时多态性的抽象类的示例- 示例 示例 虚函数 当您在类中定义了要在继承的类中实现的函数时,可以使用虚函数。虚拟函数可以在不同的继承类中
问题内容: 我确实知道重载和重载之间的语法差异。而且我也知道,重载是运行时多态,重载是编译时多态。但是我的问题是:“重载真的是编译时的多态性吗?方法调用真的在编译时解决了吗?”。为了阐明我的观点,让我们考虑一个示例类。 由于所有方法都是公开的,因此可以全部重写(包括重载的方法),对吗?例如, 现在,考虑以下代码片段: 该方法返回一个随机对象。它可以返回的对象,或者它的任何子类,例如或或任何其他一个
本文向大家介绍什么是C#中的多态性?,包括了什么是C#中的多态性?的使用技巧和注意事项,需要的朋友参考一下 多态可以是静态的也可以是动态的。在静态多态性中,对函数的响应是在编译时确定的。在动态多态中,它是在运行时决定的。 在静态多态性中,对函数的响应是在编译时确定的。在动态多态中,它是在运行时决定的。动态多态是我们所谓的后期绑定。 编译时多态或静态绑定 在编译期间将函数与对象链接的机制称为早期绑定
本文向大家介绍什么是预编译,何时需要预编译:相关面试题,主要包含被问及什么是预编译,何时需要预编译:时的应答技巧和注意事项,需要的朋友参考一下 1、总是使用不经常改动的大型代码体。 2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。
我理解了使用奇怪的重复模板模式的静态多态性的机制。我只是不明白这有什么好处。 公开的动机是: 更喜欢使虚函数私有。 当然,还有一个彻底的解释,为什么这是好的风格。 在本指南的上下文中,第一个示例是好的,因为: 关于静态多态性,我遗漏了什么?这一切都是关于好的C++风格吗? 应该什么时候使用?有哪些指导方针?