我尝试在所有对象类中使用继承。下面是我的例子
public class Member : Order
{
private string _employeeId;
private string _employeeName;
public string EmployeeId
{
get { return _employeeId; }
set { _employeeId = value; }
}
public string EmployeeName
{
get { return _employeeName; }
set { _employeeName = value; }
}
}
public class Order
{
private int _id;
private string _itemName;
public string ID
{
get { return _id; }
set { _id = value; }
}
public string ItemName
{
get { return _itemName; }
set { _itemName= value; }
}
}
答案 0 :(得分:5)
继承在类之间建立“IS A”关系。
“会员是订单”极不可能,因此您没有正确使用它。
如果没有进一步的信息,很难给你更好的建议。
更合理的模式是:
class Person { }
class Employee: Person { }
class Member : Employee
{
public IList<Order> Orders { get; private set; }
}
class Order
{
public int MemberId { get; private set; }
}
答案 1 :(得分:0)
由于您使用的是C#,因此可以使用自动属性缩短示例:
public class Order
{
public string Id { get; set; }
public string ItemName { get; set; }
}
public class Member : Order
{
public string EmployeeId { get; set; }
public string EmployeeName { get; set; }
}
现在,您想在Order和Member上使用相同的Name和Id属性吗?然后你会这样做:
public class Order
{
public string Id { get; set; }
public string Name { get; set; }
}
public class Member : Order
{
}
但是,您能否详细说明您希望将这两个类用于什么?为什么会员继承自Order?
答案 2 :(得分:-1)
是的,看起来不错。我不能说对这些特定的类使用继承是否有意义,但如果这是你想要的,那么你就是正确的。
在C#版本3及更高版本中,您可以使用速记来创建属性:
public class Member : Order {
public string EmployeeId { get; set; }
public string EmployeeName { get; set; }
}
public class Order {
public string ID { get; set; }
public string ItemName { get; set; }
}