【发布时间】:2012-02-13 20:27:29
【问题描述】:
我对类(POCO's?)有以下内容,其中第二个应该扩展第一个。
我猜我需要一个引用基本实例的属性,在这种情况下是 Business,但我是否还需要一个构造函数来“填充”该属性,因为没有 Business,保险公司就不能存在?
我对此的参考是基础数据库,其中tblInsuranceCompany 对列BusinessID 有一个FK 约束回到tblBusiness。
另外,我是 OOP 的新手,所以请指出您可能认为“错误”的任何其他内容。谢谢,
public class Business
{
public int BusinessID { get; set; }
public BusinessType BusinessType { get; set; }
public string Name { get; set; }
public string ContactName { get; set; }
public string EmailAddress { get; set; }
public DateTime? InactiveDate { get; set; }
public IList<Address> Addresses { get; set; }
public IList<Phone> Phones { get; set; }
public string DisplayString { get { return this.ToString(); } }
public override string ToString()
{
return String.Format("{0}: {1}", Name, BusinessType.TypeDescription);
}
}
public class InsuranceCompany : Business
{
public int InsuranceCompanyID { get; set; }
public Business Business { get; set; }
public InsuranceCompanyType InsuranceCompanyType { get; set; }
public string DRIInsuranceCompanyNumber { get; set; }
public string DisplayString { get { return this.ToString(); } }
public override string ToString()
{
return String.Format("{0}: {1}", Business.Name, InsuranceCompanyType.TypeDescription);
}
}
【问题讨论】:
-
是
InsuranceCompany"is-a"Business还是 "has-a"Business?你两者都做,这是错误的。 -
@SLaks:所以继承 (
:Business) 定义了一个“is-a”,但属性public Business Business定义了一个“has-a”?如果这是正确的,那么感谢您为我澄清这一点。如果您知道我的意思,我知道我从未将其应用于“工作代码”的 2 之间的区别。谢谢!
标签: c# .net oop inheritance