Method overloading
Method overriding
Example of covariant return type
Class Burgerfactory{
public Burger createBurger{
reurn new Burger();} //this returns an object of class burger
}
Class HealthyBurgerFactory extends Burgerfactory{
public HealthyBurger createBurger{
return new HealthyBurger();}
Class HeathyBurgerFactory returns an object of class HealthyBurger, where HealthyBurger is an child of class Burger .So when we overide the createBurger method in child class HealthyBurgerFactory it can either have same return type i.e Burger or a child return type of Burger that is HealthyBurger.