属性访问器的实现不会由抽象属性声明提供。
让我们看看如何学习如何使用抽象属性。在这里,我们有一个抽象类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); } }