how to calculate 2 number integer and float by using overloading in java
JavaScript
x
class Darab{
float HasilDarab(int a ,int b){
int total;
total= a*b;
return total;
}
float HasilDarab(float a ,float b){
float total;
total=a*b;
return total;
}
}
class MethodOverloading {
public static void main(String[] args) {
float hasildarab1,hasildarab2,a=5,b=6;
Darab obj1=new Darab();
hasildarab1=obj1.HasilDarab(a,b);
hasildarab2=obj1.HasilDarab(a,b);
System.out.println("Hasil darab dalam interger"+hasildarab1);
System.out.println("Hasil darab dalam float"+hasildarab2);
}
}
this is my code but i still get both of them is float
Advertisement
Answer
You define your a
and b
variables as float
, so Java selects the method that has parameters of type float
, because, in addition to a method name, Java uses parameter types to differentiate between methods. See more here.
Try to rewrite your code as:
JavaScript
float hasildarab1, a = 5, b = 6;
int hasildarab2, c = 5, d = 6;
Darab obj1 = new Darab();
hasildarab1 = obj1.HasilDarab(a, b);
hasildarab2 = obj1.HasilDarab(c, d);
UPD: Also, as Dawood ibn Kareem correctly mentioned in the comment, you need to change the return type of the first HasilDarab
method to int
.