I already have the answer of the book but it doesn't clear my doubt. It says that because return type of the method is Mixer<? super Dog>, which means a Mixer object with a generic type that is either a Dog or a supertype of Dog. But in this case Object is a supertype and there is a compiler error.
Both the return statments would have worked fine, because, both Animal and Object is a super-type of Dog
But, the reason why the first Mixer<Object> does not fits in is because, we have declared your class as: -
So, you have bound your type that can be associated with Mixer class to either Animal or its subtype. Now, since, Object is not a subtype of Animal, you can't just create: