While working with the idea of overriding and overridden methods in Java I have noticed that there is some flexiblity given for the return types of such methods.
This flexibility is not exists, because "int" is primitive datatype and "Integer" is class/wrapper of int datatype. And "int" is not a subclass of "Integer", while "Integer" is subclass of "Object" class