Void is not a real type. Void is just a place holder to make syntax of methods definition more consistent. This is not the java innovation; this is inherited from C.
This is the reason that compiler does not allow you to write return cancel() even if method cancel() is void.