public abstract void Update(ShapeUpdater updater);
public override void Update(ShapeUpdater updater) { updater.UpdateCircle(this); }
public override void Update(ShapeUpdater updater) { updater.UpdateRectangle(this); }