2010-07-12 3 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

Что ваш вопрос? –

+0

@Abel - Как это выглядит правильно? Может быть, синтаксически. Но я не могу предусмотреть какой-либо сценарий, в котором член также является приказ! –

+0

@Greg: извините, я удалил свой комментарий после того, как обнаружил, что он синтаксически корректен. Член-ордер кажется немного странным (если только член не может заказать, предвидеть это!) ;-) – Abel

ответ

5

Inheritance создает связь «IS A» между классами.

Очень маловероятно, что «Участник - это заказ», поэтому вы не используете его правильно.

Без дополнительной информации трудно дать вам лучший совет.

Более правдоподобная модель будет:

  • Сотрудник является Личностью
  • Члена Организации является Сотрудником (сомнений здесь)
  • Член Организации имеет 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

+0

Вам, похоже, необходимо ввести базовое введение в наследование, см. Http://en.wikipedia.org/wiki/Inheritance_%28object-oriented_programming%29 и http : //studweb.north.londonmet.ac.uk/~chalkp/proj/ootutor/inheritance.html –

+0

Привет, я использую это для автоматических свойств. Если у вас есть какая-либо техника, использующая автоматические свойства, пожалуйста, дайте мне знать. спасибо – lord

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

+0

Я имею в виду, как использовать объект цепочки в бизнес-логике – lord

+0

всем, пожалуйста, совет, как использовать цельный объект, подобный образцу выше. – lord

Смежные вопросы