Благодаря полиморфизму нет причин, по которым вам нужно это делать.
И ModelDerivedClass1
, и ModelDerivedClass2
наследуются от ModelBaseClass
, поэтомуОбъявление переменной в вашем базовом классе как тип ModelBaseClass
позволит вам сохранить объект любого из этих типов.Любой метод, определенный в базовом типе ModelBaseClass
, автоматически доступен для производных типов.Если вам нужно вызвать метод, который определен только в одном из производных типов, вам нужно преобразовать объект в более конкретный тип:
DirectCast(_ClassVar, ModelDerivedClass1)
Как более конкретный и буквальныйответ на свой вопрос, вы не можете переопределить объявления переменных.Вы должны были бы объявить их как свойства, чтобы переопределить их объявления, и даже тогда вы не могли бы переопределить исключительно тип возвращаемого значения.