什么是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++