Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

if overridden method's return type is primitive (e.g. double) ,can we change return type of overriding method (e.g. int ,char)?

As shown below :

Method to be overriden:

double add (int a ,int b){  

} 

Method overridding above method:

int add(int a,int b){

}  
like image 699
a .s. Avatar asked Jan 17 '26 14:01

a .s.


2 Answers

With primitive types it is not possible, but there is a feature added to JDK 1.5 called covariant return types. So, using this feature, a subclass could return a more specific type than the one declared on the parent class.

The following code compiles fine in JDK 1.7

public static class A {
   Number go() { return 0; };
}

public static class B extends A {
  @Override
  Integer go() { return 0; }
}

See JLS Example 8.4.8.3-1. Covariant Return Types

like image 65
Edwin Dalorzo Avatar answered Jan 20 '26 03:01

Edwin Dalorzo


No, you cannot change the return type. You can overload a method by providing alternate or additional input.

i.e.

int add(int a, int b, int c)
like image 43
Patrick J Abare II Avatar answered Jan 20 '26 02:01

Patrick J Abare II