2010-07-12 46 views
-1

我嘗試在我的所有對象類中使用繼承。下面是我的榜樣請幫助我使用對象的繼承

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; } 
    } 

} 
+4

什麼是你的問題? – 2010-07-12 09:14:14

+0

@Abel - 它看起來怎麼樣?在句法上,也許。但我無法想象任何一個成員也是一個訂單的情況! – 2010-07-12 09:24:42

+0

@Greg:對不起,我發現它只是語法上正確的,我刪除了我的評論。成員是一個訂單似乎有點太奇怪(除非一個成員是你可以訂購的東西,設想這個!);-) – Abel 2010-07-12 09:26:58

回答

5

繼承使類之間存在「是」關係。

「一個成員是一個訂單」是非常不可能的,所以你沒有正確使用它。

沒有進一步的信息,很難給你更好的建議。

一個更合理的模式應該是:

  • 僱員一個人
  • 一個會員一個Employee(懷疑這裏)
  • 一個會員 0或以上的訂單

class Person { } 
class Employee: Person { } 
class Member : Employee 
{ 
    public IList<Order> Orders { get; private set; } 
} 

class Order 
{ 
    public int MemberId { get; private set; } 
} 
+0

大家請指教如何使用像上面的示例的鏈式對象 – lord 2010-07-13 06:36:49

+0

您似乎需要一個基本的繼承介紹,請參閱http://en.wikipedia.org/wiki/Inheritance_%28object-oriented_programming%29和http ://studweb.north.londonmet.ac.uk/~chalkp/proj/ootutor/inheritance.html – 2010-07-13 07:11:26

+0

嗨,我用這個自動屬性。 如果你有任何使用自動屬性的技術,請讓我知道。謝謝 – lord 2010-07-26 02:40:16

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; } 
} 

現在,是要使用相同的名稱和ID屬性中的問題訂單和會員?那麼你應該這樣做:

public class Order 
{ 
    public string Id { get; set; } 
    public string Name { get; set; } 
} 

public class Member : Order 
{ 
} 

但是,你能給出更多關於你希望這兩個類用於什麼的細節嗎?爲什麼會員從訂單繼承?

-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; } 

} 
+0

爲什麼downvote?如果你不解釋你認爲什麼是錯的,它不能改善答案。 – Guffa 2010-07-12 09:39:33

+0

我的意思是,如何在業務邏輯 – lord 2010-07-13 06:31:06

+0

中使用鏈對象,請大家就如何使用鏈式對象(如上面的示例)給出建議。 – lord 2010-07-13 06:33:32