Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Переопределить с другим типом возвращаемого значения (http://www.flasher.ru/forum/showthread.php?t=183494)

O.K. 23.08.2012 14:58

Переопределить с другим типом возвращаемого значения
 
Есть вот у класса Event метод clone() возвращает копию себя, а у меня есть GameEvent extends Event и я хочу переопределить метод clone() тоб он возвращал копию GameEvent - а не дают мне так сделать, ведь переопределенный метод должен возвращать тотже тип что и переопределяемый.

Или я не знаю как это сделать?

Wolsh 23.08.2012 15:03

Ну и что? Пусть клон возвращает Тип Event, ваше событие в любом случае является его наследником и ничего не нарушает.
Код AS3:

return new GameEvent(...); // GameEvent удовлетворяет кастингу в Event


O.K. 23.08.2012 15:09

При присвоении приходится дополнительно писать as GameEvent иначе ругается

Wolsh 23.08.2012 15:16

Ни разу не сталкивался с таким. При каком присвоении? В хендлере то Вы объявляете тип параметра как GameEvent?

O.K. 23.08.2012 15:35

Если clone будет иметь тип Event, то будет так:

var clone:GameEvent = gameEventInstance.clone()

Implicit coercion of a value with static type flash.events:Event to a possibly unrelated type game.eventManager:GameEvent.

Придется писать так:

var clone:GameEvent = eventInstance.clone() as GameEvent;

Wolsh 23.08.2012 17:19

А, ну тут да, конечно нужен кастинг. Просто ни разу не приходилось клонировать их вручную))


Часовой пояс GMT +4, время: 11:07.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.