Показать сообщение отдельно
Старый 24.03.2020, 14:30   #425  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
582 / 273 (11) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Наткнулся в недрах класса JournalRunBaseBatch
X++:
public container  pack()
{
    throw error(Error::missingOverload(funcName()));
}
То же самое и для unpack().
Здесь как бы разница есть, перегружен метод, или переопределен.
Причем в Х++ сроду не было перегруженных методов.
Видимо, не сильно-то и важно. Заходим внутрь и видим:
X++:
//Do not use!
//Declare method as abstract instead or call Error::missingOverride();
#obsolete static LabelType missingOverload(str name)
{
    return Error::missingOverride(name);
}
Ладно, здесь возможно заглушку поставили на случай будущих апгрейдов в сторону нормальных языков.
Но что мешало сразу использовать missingOverride()?
Напомню, кто может не въехал.
Override - переопределение метода в рамках наследования.
Overload - перегрузка метода, т.е. в теле одного класса мы можем разместить дофига методов с одним и тем же именем, но разными параметрами. Что очень распространено в C#, Java и Delphi.
Такое чувство, что разработчики MS просто сами не сильно понимают в чем разница.
__________________
// no comments