protected override bool isValid(Rent rent) { return(false); }
protected override void apply(Rent rent) { count--; }
protected override void apply(Rent rent) { }
protected override bool isValid(Rent rent) { return(count > 0); }
protected override void apply(Rent rent) { remaining -= rent.Price; }
protected override bool isValid(Rent rent) { return(remaining > rent.Price); }
protected abstract void apply(Rent rent);
protected abstract bool isValid(Rent rent);