That specify the return type may vary in same directionas the child class.
In java it is possible to override method by changing the return type if child class override in any method but it changes its return type to subclass type.
class A{
A get(){return this;}
}
class B extends A{
B1 get(){return this;}
void msg(){System.out.println("we get covariant returntype");}
public static void main(String args[]){
new B().get().msg();
}
}