When an identifer is declared to have class varargs then subsequent uses of the identifier are replaced by the identifier with the number of arguments appended; in the example above the call to foo in the last line is replaced by the compiler with a call to foo2.