超载与Java中的继承有效吗?解释这个概念



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

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

超载和继承的概念并不是真正相关的。

您正在定义方法f进行双重或int(过载)。编译器决定基于参数调用的方法。

您正在从基类(继承)中吸入一种超载方法。

,但是您可以同样将这两种方法都放在同一类中,并且它仍然可以使用,并且您可以重命名其中一种方法(因此您没有超载),并且它仍然可以正常工作。

它们是单独的概念。

相关内容

最新更新