I'm not exactly sure what your point is. Are you wanting to define both of those methods at the same time for a given class? If so, that's not possible because the compiler wouldn't know which to call (the have the same signature). Also, why would you want a given method to return two different types?