Java 多态性是否也存在于方法重载中?
很长一段时间以来,我认为多态性被定义为一个类从另一个类继承,因此继承类的类型比超类的类型更窄。然而,最近有人告诉我,方法重载也称为多态性。我目前的印象是,方法重写和方法重载分别称为运行时多态性和编译时多态性 我的问题如下:Java 多态性是否也存在于方法重载中?,java,polymorphism,overloading,Java,Polymorphism,Overloading,很长一段时间以来,我认为多态性被定义为一个类从另一个类继承,因此继承类的类型比超类的类型更窄。然而,最近有人告诉我,方法重载也称为多态性。我目前的印象是,方法重写和方法重载分别称为运行时多态性和编译时多态性 我的问题如下: 我认为方法重写和方法重载对吗 作为运行时和编译时多态性 为了重载方法,是否需要重写任何内容 重载确实是一种尽管在Java OOP circles1中,它与Java OOP无关,也不经常被讨论,甚至不被承认,但我们可以改变它 …多态性是为不同类型的实体提供单一接口 也就是说,重
参见这些附加问题;选择的依据是带有[详细]答案的问题,这些问题[主要]支持上述论点
- (我将投票结束这一问题。)
- (Luca Cardelli,Peter Wegner,1985),Java之前几年的白皮书,建立在Stachey的论文之上
- (Christoper Strachey 1967)引入了这种多态性分类,但早于“重载”的使用
- (CMU 15-411:编译器设计,Frank Pfenning)
1未提及重载多态性;但是它也没有提到接口对于Java中的子类型多态性是足够的(或暗示的)。首先,重写和重载都是不同的。没错,重载被称为静态多态或编译时多态。在编译时,Java编译器将方法调用绑定到相应的调用方,从而绑定术语。其中,与动态或运行时多态性一样,绑定延迟到执行。我们可以使用继承执行运行时多态性。JVM为什么在编译时做任何事情?Java编译器执行编译时绑定。这是一个错误。我错误地编写了JVM,而不是编译器。可能重复的一些如何编辑的问题与我想问的不同。@BheshGurung我在脚注中添加了trail链接;然而,我相信有足够的理由证明重载是多态性的一种[不同]形式。