管理进化

重载是多态吗


重载和多态之间概念有交叉。多态是同一个类型,表现出多种不同行为。重载可以根据静态子类型分派不同表现,所以它是一种静态多态。但是,有些重载并不是针对静态子类型,所以它不是多态。

重载和多态之间概念有交叉。

多态是同一个类型,表现出多种不同行为。重载可以根据静态子类型分派不同表现,所以它是一种静态多态。但是,有些重载并不是针对静态子类型,所以它不是多态。

class A {}

class B extends A {}

class C extends A {}

public class Client {

public void f(B obj) { }

public void f(C obj) {}

public void g(double num) {}

public void g(String num) {}

}

这里Client.f是多态,Client.g不是多态。

延伸阅读:

重载

overload可直译为重载,它是指我们可以定义一些名称相同的方法,通过定义不同的输入参数来区分这些方法,然后再调用时,VM就会根据不同的参数样式,来选择合适的方法执行。

overload最常见于java的编写过程中,是面向对象程序设计(Object Oriented Programming)的特性之一。

多态

在编程语言和类型论中,多态(英语:polymorphism)指为不同数据类型的实体提供统一的接口。 多态类型(英语:polymorphic type)可以将自身所支持的操作套用到其它类型的值上。

多态是为了提高抽象与复用的能力,目前主要类型有:

1)参数多态,即函数式多使用的,多称为泛型。

2)子类型,也可以叫面向对象。

智齿客服