This is a case of the "most specific" method being selected.
A null reference can represent any object type, so it can match any non-primitive argument type.
In this case, the choices are A, B, and C (in various combinations). A null reference could represent
any of these. But C is "more specific" than B because a C reference can be upcast to type B, but not vice versa. Likewise, B is more specific than A. So the most specific choice here is the method that takes two C references.
For other examples, search this forum for "most specific."
(For the dirty details, see
JLS - 15.12.2.5 Choosing the Most Specific Method.)