
27.10.2008, 18:21
|
|
|
Modus ponens
модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
|
Каст интерфейса не проходит если тип возвращаемый функцией является супеклассом
ОК, сейчас попробую объяснить...
Дано:
суперкласс: Form
наследники: TextForm, VideoForm и т.д.
есть интерфейс, который имплементит часть наследников: IExtendedForm
есть функция типа getTopmostForm():Form
я не могу сделать ее getTopmostForm():IExtendedForm потому, что не все наследники Form имплементят IExtendedForm. Но, когда я пытаюсь сделать:
IExtendedForm(getTopmostForm()), то получаю null -- и это очень обидно, принимая во внимание, что объект, который возвращает функция точно имплементит этот интерфейс =)
Это даже скорее не вопрос... похоже, что ничего с этим не поделаешь, и так реализованы интерфейсы. Просто, если вдруг кто-то столкнется...
__________________
Hell is the possibility of sanity
|