什么是C#中的抽象属性?

属性访问器的实现不会由抽象属性声明提供。

让我们看看如何学习如何使用抽象属性。在这里,我们有一个抽象类Shape,它带有两个派生类:Square和Circle。

在这里,我们有一个抽象的Area属性。

以下是Circle类。

示例

public class Circle : Shape {
   private int radius;
   public Circle(int radius, string id) : base(id) {
      this.radius = radius;
   }
   public override double Area {
      get {
         return radius * radius * System.Math.PI;
      }
   }
}

同样,Square类。

示例

public class Square : Shape {
   private int side;
   public Square(int side, string id) : base(id) {
      this.side = side;
   }
   public override double Area {
      get {
         return side * side;
      }
   }
}

以下是Shape类,它是抽象的。

示例

public abstract class Shape {
   private string name;
   public Shape(string s) {
      Id = s;
   }
   public string Id {
      get {
         return name;
      }
      set {
         name = value;
      }
   }
   public abstract double Area {
      get;
   }
   public override string ToString() {
      return Id + " Area = " + string.Format("{0:F2}", Area);
   }
}