重载是否与java中的继承一起工作?解释这个概念

时间:2017-12-11 08:30:56

标签: java inheritance overloading

主要是我想知道背后的概念。

public class Myprogram3 {

  public static void main(String args[]){
    Derived obj = new Derived();
    System.out.println(obj.f(3));
    System.out.println(obj.f(3.3));
  }
}
class Base{

    public int f(int i){
        System.out.print("f (int): ");
        return i+3;
    }
}
class Derived extends Base{
    public double f(double i){
        System.out.print("f (double) : ");
        return i + 3.3;
    }
}

输出:

f (int): 6
f (double) : 6.6

1 个答案:

答案 0 :(得分:1)

重载和继承的概念并没有真正相关。

您正在定义方法f以采用double或int(重载)。编译器根据参数决定调用哪个方法。

您正在从基类(继承)中继承其中一个重载方法。

但你可以同样将两个方法放在同一个类中,它仍然可以工作,你可以重命名你的一个方法(所以你没有重载),它仍然可以工作。

它们是不同的概念。