class c#如何实现多态

avatar
作者
筋斗云
阅读量:0

在C#中,实现多态的方法主要有以下两种:

  1. 接口(Interfaces):接口允许你定义一个行为契约,然后让类实现这个契约。实现接口的类必须提供接口中所有方法的实现。这样,你就可以通过接口类型的引用来调用不同类中的方法,从而实现多态。
// 定义一个接口 public interface IShape {     double Area(); }  // 实现接口的类 public class Circle : IShape {     private double radius;      public Circle(double radius)     {         this.radius = radius;     }      public double Area()     {         return Math.PI * radius * radius;     } }  public class Rectangle : IShape {     private double width;     private double height;      public Rectangle(double width, double height)     {         this.width = width;         this.height = height;     }      public double Area()     {         return width * height;     } }  // 使用接口类型的引用来调用不同类中的方法 public class Program {     public static void Main()     {         IShape circle = new Circle(5);         IShape rectangle = new Rectangle(4, 6);          Console.WriteLine("Circle area: " + circle.Area());         Console.WriteLine("Rectangle area: " + rectangle.Area());     } } 
  1. 继承(Inheritance):继承允许你创建一个新类,从已有的类继承属性和方法。新类可以重写或扩展基类的方法,从而实现多态。
// 基类 public class Animal {     public virtual void MakeSound()     {         Console.WriteLine("The animal makes a sound");     } }  // 派生类 public class Dog : Animal {     // 重写基类的方法     public override void MakeSound()     {         Console.WriteLine("The dog barks");     } }  public class Cat : Animal {     // 重写基类的方法     public override void MakeSound()     {         Console.WriteLine("The cat meows");     } }  // 使用基类类型的引用来调用派生类中的方法 public class Program {     public static void Main()     {         Animal dog = new Dog();         Animal cat = new Cat();          dog.MakeSound(); // 输出 "The dog barks"         cat.MakeSound(); // 输出 "The cat meows"     } } 

这两种方法都可以实现多态,但接口更适合用于定义行为契约,而继承更适合用于表示类之间的关系。在实际开发中,你可以根据需要选择合适的方法来实现多态。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!