主要是我想知道其背后的概念。
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(过载)。编译器决定基于参数调用的方法。
您正在从基类(继承)中吸入一种超载方法。
,但是您可以同样将这两种方法都放在同一类中,并且它仍然可以使用,并且您可以重命名其中一种方法(因此您没有超载),并且它仍然可以正常工作。
它们是单独的概念。