MATLAB: Inconsitent function overloading MATLAB R2017a

MATLABoverloading

Hello,
I am currently encountering problems with function overloading within MATLAB R2017a.
I try to overload common functions such as abs and max among others. It seems to be simple but in fact for me it is not.
To do this, I create specific directories OVERLOAD\@single, OVERLOAD\@int32, OVERLOAD\@uint32 and OVERLOAD\@double. abs and max functions are redefined into @double and @single.
Overloaded abs function into @single is defined as: function [ output ] = abs(x) …
overloaded max function is defined as: function [ output ] = max(varargin) …
After adding path to OVERLOAD parent directory at ht beginning of path, I execute "which -all" command trying to understand which function is effectively called when executing abs and max. This is what I get:
>> which abs -all;
D:\Data\OVERLOAD\@single\abs.m % single method
D:\Data\OVERLOAD\@double\abs.m % double method
built-in (C:\Program Files\Matlab\R2017a\toolbox\matlab\elfun\@double\abs) % double method
>> which max -all;
built-in (C:\Program Files\Matlab\R2017a\toolbox\matlab\datafun\max)
D:\Data\OVERLOAD\@single\max.m % single method
D:\Data\OVERLOAD\@double\max.m % double method
It seems that overloading for max function appears in second position after built-in instead of first position.
Could anyone explain me why overloading is successful for abs and fails for max ?
Thanks for your attention.

Best Answer

AT last, the first line displayed when executing "which max -all;" i.e.
built-in (C:\Program Files\Matlab\R2017a\toolbox\matlab\datafun\max)
does not mean that this is this code which is executing when calling max for single variables.
Thus overloading max function is successful as for abs function.