Posts

Showing posts with the label covariant return types

Java 5: Covariant Return Type

Before Java 1.5, when we override a Parent class method then we need to have same return type of method in child class.  From Java 5 onwards, we can override a method by changing its return type, but overriding method's return type should be a sub-type of overridden method return type. For example, class Parent {    public Parent getObject() {      return this;    } } class Child extends Parent {    public Child getObject() {      return this;   }    public void print() {      System.out.println("Child class method..!");   }   public static void main(String[] args){     new Child().getObject().print();   } }