Нужно ли сопоставлять аргументы / параметры при создании функции переопределения? - PullRequest
0 голосов
/ 20 апреля 2011

, если я хочу добавить что-то к реализации

public static function createPopUp(parent:DisplayObject,
                                   className:Class,
                                   modal:Boolean = false,
                                   childList:String = null,
                                   moduleFactory:IFlexModuleFactory = null):IFlexDisplayObject
{   
    return impl.createPopUp(parent, className, modal, childList, moduleFactory);
}

Должен ли я поместить все аргументы в мое объявление функции или он неявно принимает их?

1 Ответ

2 голосов
/ 20 апреля 2011

Да - ActionScript не поддерживает перегрузку метода, только переопределение, и в этом случае подпись вашего метода должна точно соответствовать сигнатуре переопределенного метода.

Но вы пытаетесь переопределить статический метод, который невозможен вActionScript вообще.Если вы хотите, чтобы что-то вроде фрагмента кода создавало ваш класс, ничего не наследуя, поместите в него статический метод createPopUp и позвольте ему вызывать статический метод createPopUp из класса, который вы хотите украсить, и вызовите статический метод вашего класса вместо исходного.

Эта невозможность разумного наследования (или вообще наследования) статических методов является одной из причин, по которой следует стараться как можно больше воздерживаться от использования статики - статика отнимает силу наследования от ОО-языков.

...