📜  在同一个类中实现多个接口的 C# 程序(1)

📅  最后修改于: 2023-12-03 15:23:31.677000             🧑  作者: Mango

在同一个类中实现多个接口的 C# 程序

在C#中,一个类可以实现多个接口,这种机制称为接口多继承。接口多继承允许一个类在实现多个接口时,能够同时拥有接口所有的特性和行为。

接口

接口是一种抽象类型,它定义了一组方法、属性、索引器和事件的签名,但是并不提供实现。接口用于描述类的行为特征,是类和类之间的一种协议,它规定了类需要遵守的规范。

在C#中,使用interface关键字来定义接口。例如,下面是一个简单的接口定义:

public interface IShape
{
    double Area();
}

上面的代码定义了一个名为IShape的接口,它包含了一个名为Area的方法。任何实现了IShape接口的类都必须实现Area方法。

实现多个接口

C#中的接口多继承使用comma(,)隔开实现的接口。例如,下面代码展示了如何在一个类中实现多个接口:

public class Circle : IShape, IDrawable
{
    private double _radius;

    public Circle(double radius)
    {
        _radius = radius;
    }

    public double Area()
    {
        return Math.PI * _radius * _radius;
    }

    public void Draw()
    {
        Console.WriteLine("Drawing Circle");
    }
}

上面的代码定义了一个名为Circle的类,它实现了IShape接口和IDrawable接口。在Circle类中,它必须实现IShape接口中的Area方法和IDrawable接口中的Draw方法。

示例

下面是一个完整的示例代码,演示如何在一个类中实现多个接口:

using System;

public interface IShape
{
  double Area();
}

public interface IDrawable
{
  void Draw();
}

public class Circle : IShape, IDrawable
{
  private double _radius;

  public Circle(double radius)
  {
    _radius = radius;
  }

  public double Area()
  {
    return Math.PI * _radius * _radius;
  }

  public void Draw()
  {
    Console.WriteLine("Drawing Circle");
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    Circle c = new Circle(5);
    Console.WriteLine("Area of Circle: " + c.Area());
    c.Draw();
    Console.ReadLine();
  }
}

上面的代码创建了一个Circle类,它实现了IShape接口和IDrawable接口。在Main方法中,我们创建了一个Circle对象,并分别调用了Area方法和Draw方法,输出了类的行为特征。输出结果如下:

Area of Circle: 78.5398163397448
Drawing Circle
总结

在C#中,可以在一个类中实现多个接口,这个机制称为接口多继承。接口多继承可以让一个类在实现多个接口时,能够同时拥有接口所有的特性和行为。