什么是C#中的后期绑定?

在静态多态性中,对函数的响应是在编译时确定的。在动态多态中,它是在运行时决定的。动态多态是我们所谓的后期绑定。

动态多态性由抽象类和虚函数实现。以下示例显示了动态多态性的示例-

示例

using System;

namespace PolymorphismApplication {

   class Shape {

      protected int width, height;

      public Shape( int a = 0, int b = 0) {

         width = a;

         height = b;

      }

      public virtual int area() {

         Console.WriteLine("家长课区:");

         return 0;

      }

   }

   class Rectangle: Shape {

      public Rectangle( int a = 0, int b = 0): base(a, b) {}

      public override int area () {

         Console.WriteLine("矩形类区域:");

         return (width * height);

      }

   }

   class Triangle: Shape {

      public Triangle(int a = 0, int b = 0): base(a, b) {}

      public override int area() {

         Console.WriteLine("三角类区域:");

         return (width * height / 2);

      }

   }

   class Caller {

      public void CallArea(Shape sh) {

         int a;

         a = sh.area();

         Console.WriteLine("Area: {0}", a);

      }

   }

   class Tester {

      static void Main(string[] args) {

         Caller c = new Caller();

         Rectangle r = new Rectangle(10, 7);

         Triangle t = new Triangle(10, 5);

         c.CallArea(r);

         c.CallArea(t);

         Console.ReadKey();

      }

   }

}

输出结果

矩形类区域:

Area: 70

三角类区域:

Area: 25

以上是 什么是C#中的后期绑定? 的全部内容, 来源链接: utcz.com/z/321913.html

回到顶部