2012-11-26 10 views
5

Posiadam Person.cs, który będzie implementowany przez klasę Player.cs. Osoba ma właściwość ExperienceLevelType.Implementacja właściwości force na klasach pochodnych

Chcę wymusić wszystkie klasy pochodne, aby zaimplementowały własną wersję właściwości ExperienceLevelType.

public abstract Person 
{ 
    public enum ExperienceLevel { Kid, Teenager} 
    public virtual ExperienceLevel Experience {get; set;} 
} 

public abstract Player:Person 
{ 
    public override ExperienceLevel Experience 
    { 

    } 
} 
+1

Może mógłbyś zadeklarować to jako "abstrakcyjne"? – LightStriker

Odpowiedz

22

to co abstract jest dla:

public abstract class Person 
{ 
    public enum ExperienceLevel { Kid, Teenager} 
    public abstract ExperienceLevel Experience { get; set; } 
} 

Jeśli chcesz wymusić klasy pochodne, aby zaimplementować własność samodzielnie, jednocześnie udostępniając pewne rusztowania wielokrotnego użytku, aby im pomóc, wystaw komendę jako protected członków wewnątrz Person.

+0

świetnie. W jaki sposób możesz przesłonić własność Experience w klasie dziecka (Player)? – user1765862

+1

Tak samo jak twoja własność wirtualna. –

0

Można zrobić Person interfejs (i to impliment nic) lub można dokonać Person zaimplementować niestandardowego interfejsu IPerson który ma swoją nieruchomość

Powiązane problemy