According to the JLS:
Determining which Method Signature to use is a Compile-Time event, which (among others) follows this rule:
"The second step searches the type determined in the previous step for member methods. This step uses the name of the method and the types of the argument expressions to locate methods that are both accessible and applicable, that is, declarations that can be correctly invoked on the given arguments. There may be more than one such method, in which case the most specific one is chosen."
In your case you have two applicable method signatures. Since null is type-less is can work for either method signature and therefore the more specific one is chosen. Since
Test is a sub-class of Object, it is more specific than Object and is the method linked to the method-call expression.