Цитата:
Сообщение от dimarik
Да, есть. На примере Array и NameSpace. Или это множественность конструкторов )
|
Дык в своем классе тоже никто не мешает написать такое:

Код AS3:
/**
* А здесь мы пишем:
* если передается строка, то...
* и т.д. и т.п.
*/
public function MyClass(...args)
{
if (args != null && args.length == 1 && args[0] is String)
{
...
}
else
{
...
}
Было бы ради чего, MyClass.createByString("line") в 1000 раз лучше читается и комментарии нафиг не нужны.
Недостаток перегрузки в AS3 доставляет только 1 неудобство: придумывание дурацких префиксов к именам методов, а так все что можно сделать с перегрузкой, можно сделать и без нее.
Ну разве что, говорят, в при реализации паттерна Visitor сложнее ошибиться с вызовом правильного метода, если есть перегрузка методов по параметра в языке.
Т.е. все методы accept называются одинаково, только параметры разные принимают, значит вызвать "не тот" не получится, но это явно не глобальная проблема.