Проблема такая: имеется абстрактный класс A, его наследники: A1, A2, A3.
Абстрактный класс B, его наследники B1, B2, B3. Класс B имеет поле типа A:
public abstract class B
{
public A field;
}
Есть ли возможность организовать всё таким образом, чтобы в дочерних классах (B1, B2, B3), это поле имело соответствующий дочерний тип (A1, A2, A3)?
Сокрытие с new не подходит, поскольку нужна возможность обращения к ним же через базовый класс (B).