![]() |
Каст интерфейса не проходит если тип возвращаемый функцией является супеклассом
ОК, сейчас попробую объяснить...
Дано: суперкласс: Form наследники: TextForm, VideoForm и т.д. есть интерфейс, который имплементит часть наследников: IExtendedForm есть функция типа getTopmostForm():Form я не могу сделать ее getTopmostForm():IExtendedForm потому, что не все наследники Form имплементят IExtendedForm. Но, когда я пытаюсь сделать: IExtendedForm(getTopmostForm()), то получаю null -- и это очень обидно, принимая во внимание, что объект, который возвращает функция точно имплементит этот интерфейс =) Это даже скорее не вопрос... похоже, что ничего с этим не поделаешь, и так реализованы интерфейсы. Просто, если вдруг кто-то столкнется... |
Не знаю. У меня возвращает [object Object], если класс реализует интерфейс и null, если не реализует.
|
Ну, не знаю... может это связано с тем, что суперкласс имплементит другой интерфейс... =/
|
getTopmostForm должен возвращать IForm, а IExtendedForm должен наследовать IForm .
|
А что, в AS2 нельзя имплементить больше чем 1 интерфейс? вроде ж как можно... Т.е. мне совсем не нужно чтобы IExtendedForm наследовался от IForm... более того, может быть ситуация, когда его имплементит, скажем FormItem который вообще не связан с Form...
T.e. схема: Код:
Form FormItem |
| Часовой пояс GMT +4, время: 21:21. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.