namespace Packt.Shared; public abstract class Shape { // fields protected double height; protected double width; // properties public virtual double Height { get { return height; } set { height = value; } } public virtual double Width { get { return width; } set { width = value; } } // Area must be implemented by derived classes // as a read-only property public abstract double Area { get; } }