實作基底類別中的抽象方法並分派任務給衍生類別
#region 實現基類中的抽象方法以及將任務分派到下面的派生類去
/// <summary>
/// 實現基類的抽象方法,但考慮還需要下一層派生類完成
/// 所以選擇讓它呼叫其他可被派生類修改的方法
/// </summary>
public override double GetMoney() { return TGetMoney(); }
public override string Execute() { return TExecute(); }
/// <summary> 在此不處理,交由處理它的派生類完成 </summary>
public virtual double TGetMoney() { return 0; }
/// <summary> 在此不處理,交由處理它的派生類完成 </summary>
public virtual string TExecute() { return ""; }
#endregion
}
}
/// <summary> 作為租賃業務的一個基類,協助實作 Root 類別並增加租賃相關屬性與方法 </summary>
public abstract class Hire : Root
{
#region 系列的私有欄位
/// <summary> 租賃天數 </summary>
protected int _day;
/// <summary> 書的押金 </summary>
protected double _deposit;
#endregion
}
對外公開屬性(定價、書名、使用者名稱、天數、日租金)
#region 外露屬性(定價,書名,用戶名,天數,日租金)
/// <summary> 取得書的定價 </summary>
public double Price { get { return _price; } }
/// <summary> 取得使用者名稱 </summary>
public string Uname { get { return _uname; } }
/// <summary> 取得書的名稱 </summary>
public string Bname { get { return _bookname; } }
/// <summary> 取得或設定租賃天數 </summary>
public int Day { get { return _day; } set { _day = value; } }
/// <summary> 取得或設定書的押金 </summary>
public double Deposit { get { return _deposit; } set { _deposit = value; } }
/// <summary> 實收現金 </summary>
public double Cash { get { return _cash; } set { _cash = value; } }
#endregion