У меня есть базовый класс с абстрактными свойствами. Я хочу, чтобы все наследующие классы переопределяли абстрактные свойства. Пример:Наследование абстрактных классов с абстрактными свойствами
public class Person
{
public string Name{get;set;}
public string LastName{get;set;}
}
public class Employee : Person
{
public string WorkPhone{get;set;}
}
public abstract class MyBase
{
public abstract Person Someone {get;set;}
}
public class TestClass : MyBase
{
public override Employee Someone{get;set;} //this is not working
}
Базовый класс имеет свойство Кто-то с Person
типа. Я переоцениваю Someone
недвижимость на моем TestClass
. Теперь я хочу использовать тип Employee
вместо Person
. Мой класс Employee
наследует от Person
. Я не мог заставить его работать. Что мне делать, чтобы избежать этой проблемы?
Помогите оценить!
Вы никогда не реализуете 'Person Someone', а' Employee Someone' не находится в базовом классе ('MyBase'). – Matthew
Возможный дубликат [C# covariant return types using generic] (http://stackoverflow.com/questions/4348760/c-sharp-covariant-return-types-utilizing-generics) – nawfal