as far as explanation goes, why do you expect to see true as the output?? You are calling super.clone in your clone implementation. The clone method of Object class will be called in that case. If you see the documentation of clone method in Object class, it says
While it is typically the case that:
x.clone().equals(x)
will be true, this is not an absolute requirement.
Since you are not overriding the equals method, so when you call equals, equals method of Object class is called. The equals method of object class looks for reference equality i.e. return this == other. Since the references are not equal, so it doesn't matter age field has the same value in both objects. You will get true if you use this code