Java 多态性是否也存在于方法重载中?

Java 多态性是否也存在于方法重载中?,java,polymorphism,overloading,Java,Polymorphism,Overloading,很长一段时间以来,我认为多态性被定义为一个类从另一个类继承,因此继承类的类型比超类的类型更窄。然而,最近有人告诉我,方法重载也称为多态性。我目前的印象是,方法重写和方法重载分别称为运行时多态性和编译时多态性 我的问题如下: 我认为方法重写和方法重载对吗 作为运行时和编译时多态性 为了重载方法,是否需要重写任何内容 重载确实是一种尽管在Java OOP circles1中,它与Java OOP无关,也不经常被讨论,甚至不被承认,但我们可以改变它 …多态性是为不同类型的实体提供单一接口 也就是说,重

很长一段时间以来,我认为多态性被定义为一个类从另一个类继承,因此继承类的类型比超类的类型更窄。然而,最近有人告诉我,方法重载也称为多态性。我目前的印象是,方法重写和方法重载分别称为运行时多态性和编译时多态性

我的问题如下:

  • 我认为方法重写和方法重载对吗 作为运行时和编译时多态性
  • 为了重载方法,是否需要重写任何内容
  • 重载确实是一种尽管在Java OOP circles1中,它与Java OOP无关,也不经常被讨论,甚至不被承认,但我们可以改变它

    …多态性是为不同类型的实体提供单一接口

    也就是说,重载是在编译时工作的

    在编程语言中,特殊多态性是一种多态性,在这种多态性中,多态函数可以应用于不同类型的参数,因为多态函数可以表示许多不同的、潜在异构的实现,具体取决于应用它的参数的类型。[ad hoc多态性]也称为函数重载或运算符重载

    重载方法也可能参与运行时—通过方法重写、接口和虚拟调度在Java中实现


    参见这些附加问题;选择的依据是带有[详细]答案的问题,这些问题[主要]支持上述论点

    • (我将投票结束这一问题。)
    其他资源;再次选择以支持上述情况

    • (Luca Cardelli,Peter Wegner,1985),Java之前几年的白皮书,建立在Stachey的论文之上
    • (Christoper Strachey 1967)引入了这种多态性分类,但早于“重载”的使用
    • (CMU 15-411:编译器设计,Frank Pfenning)


    1未提及重载多态性;但是它也没有提到接口对于Java中的子类型多态性是足够的(或暗示的)。

    首先,重写和重载都是不同的。没错,重载被称为静态多态或编译时多态。在编译时,Java编译器将方法调用绑定到相应的调用方,从而绑定术语。其中,与动态或运行时多态性一样,绑定延迟到执行。我们可以使用继承执行运行时多态性。

    JVM为什么在编译时做任何事情?Java编译器执行编译时绑定。这是一个错误。我错误地编写了JVM,而不是编译器。可能重复的一些如何编辑的问题与我想问的不同。@BheshGurung我在脚注中添加了trail链接;然而,我相信有足够的理由证明重载是多态性的一种[不同]形式。