Precedent is simply the order in which the functions are defined.
ClearAll[B] B[x_, 3] := 0; B[4, y_] := 1; B[4, 3] (* 0 *) ClearAll[B] B[4, y_] := 1; B[x_, 3] := 0; B[4, 3] (* 1 *)
Beware, everything gets confused if you redefine functions.
ClearAll[B] B[x_, 3] := 0; B[4, y_] := 1; B[4, y_] := 2; B[x_, 3] := 3; B[4, 3] (* 3 *)
Please note that the determinants are correctly changed, but the order is in accordance with the original sequence. (hence the liberal use of ClearAll when dealing with such things)
To see the order of use:
??B
source share