重载与Java中的继承一起工作吗?解释这个概念

Posted

技术标签:

【中文标题】重载与Java中的继承一起工作吗?解释这个概念【英文标题】:does overloading work with inheritance in java? explain this concept 【发布时间】:2018-05-24 17:47:53 【问题描述】:

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

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

【问题讨论】:

你试过了吗?有用吗? 看起来像家庭作业?到目前为止,您尝试了什么? The relationship of overload and method return type in Java?的可能重复 【参考方案1】:

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

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

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

但是您可以同样地将这两种方法放在同一个类中,它仍然可以工作,并且您可以重命名您的方法之一(这样您就不会重载),它仍然可以工作。

它们是不同的概念。

【讨论】:

以上是关于重载与Java中的继承一起工作吗?解释这个概念的主要内容,如果未能解决你的问题,请参考以下文章

重载与重写区别?

关于Java中的继承,包括重写构造器访问权限构造过程等知识总结

什么是多态方法重写与重载

java 静态方法可以重载吗重写呢

8.继承覆盖重载与多态

Java中的重载和重写的区别