Я смущен различными взаимодействиями наследования/абстракции. Допустим, у меня есть определенный класс, называемый BaseClass
, теперь на этом BaseClass у меня есть несколько inherrited производных классов, InherritedBaseClassA
и т.д ..Переопределить [абстрактное свойство baseclass] в [абстрактном классе] с [производным от baseclass-property] в унаследованном классе
class BaseClass
{
int SomeGenericProperties {get; set;}
}
class InherritedBaseClassA : BaseClass
{
int PropertyOnlyInA {get; set;}
}
class InherritedBaseClassB : BaseClass
{
int PropertyOnlyInB {get; set;}
}
Теперь я хотел бы добавить BaseClass
как свойство в abstract
класс:
abstract class AbstractBase
{
public abstract Baseclass MyProperty {get;set;}
}
и, наконец, я хотел бы, в моей реализации этого abstract
класса, переопределить BaseClass
с Derived
классов.
class Implementation_A_OfAbstractBase : AbstractBase
{
// how do i write this line?
public override InherritedBaseClassA MyProperty;
}
Я хочу, чтобы это сделать, потому что в другом месте в моем коде у меня есть общий список AbstractBase
и иногда я хочу Acces AbstractBase.MyProperty.SomeGenericProperties
, которые не существуют независимо от того, какой inherrited им реализации BaseClass с использованием, так как их MyProperty
является inherrited от BaseClass