C#接口和抽象类的方法
时间: 2024-05-09 17:16:18 浏览: 106
C#中的接口和抽象类都可以包含抽象方法。抽象方法是没有实现的方法,只有方法签名,需要在子类中实现具体的实现。区别在于:
1. 接口中的所有方法都是抽象方法,而抽象类中可以有非抽象方法。
2. 一个类可以实现多个接口,但只能继承一个抽象类。
下面是两者的示例:
抽象类:
```csharp
public abstract class Shape
{
public abstract double Area(); //抽象方法
public void Print() //普通方法
{
Console.WriteLine("这是一个形状");
}
}
public class Circle : Shape
{
private double radius;
public Circle(double r)
{
radius = r;
}
public override double Area() //实现抽象方法
{
return Math.PI * radius * radius;
}
}
```
接口:
```csharp
public interface IShape
{
double Area(); //抽象方法
}
public class Circle : IShape
{
private double radius;
public Circle(double r)
{
radius = r;
}
public double Area() //实现接口方法
{
return Math.PI * radius * radius;
}
}
```
阅读全文