方法重载是大多数面向对象编程语言中的一个特性,在这种语言中,两个或多个方法具有相同的名称,但具有不同的参数。具体地说,参数的数目、数据类型和/或顺序是不同的。在编译代码时,正确的方法将根据调用方式自动选择。方法...
方法重载是大多数面向对象编程语言中的一个特性,在这种语言中,两个或多个方法具有相同的名称,但具有不同的参数。具体地说,参数的数目、数据类型和/或顺序是不同的。在编译代码时,正确的方法将根据调用方式自动选择。方法在某些编程语言中也称为函数,因此,方法重载有时也被称为函数重载。

在面向对象的计算机编程中,当两个或多个方法同名但参数不同时,称为方法重载。
方法重载的一个简单示例是计算正方形面积的方法。它可以定义为getArea(square s)。可以通过添加方法getArea(circle c)来重载此方法来额外计算圆的面积。
方法重载是指方法共享相同的名称。它们的方法签名(方法名称、参数数目和参数数据类型)应该是唯一的。这样,编译器就可以确定要执行哪个方法。
构造函数,用于实例化对象的方法,通常是重载的。这是为了用非默认值初始化对象。例如,具有两个字段(名称和出生日期,或dob)的employee对象可能具有以下重载构造函数:employee()、employee(name)和employee(name,第一个构造函数创建一个employee对象,其中name和dob字段为空;第二个构造函数设置name字段,但dob字段为空,第三个构造函数同时定义name和dob字段。
方法重载通常是为了使多个方法在逻辑上显示为单个方法在getArea()示例中,虽然实际有两个方法,但调用者只能看到一个逻辑的getArea()方法,这样,getArea()就可以扩展到其他形状(三角形、梯形、,以此类推,同时仍将自身逻辑地表示为单个方法。
方法也被重载以保持向后兼容性。执行复杂计算的方法可能会被赋予一个新的要求,可以选择性地执行相同的计算,只需稍加更改即可。将向该方法添加一个新参数,该参数将确定要执行计算-旧方法还是新方法。
为了避免必须查找调用方法的所有情况并添加新参数,可以重载该方法。新方法将具有旧签名并由现有代码调用。它本身不包含任何逻辑,只会调用修改后的方法和为新参数传递默认值"old way"。新代码将调用修改后的方法,并用适当的值、旧方法或新方法传递新参数。
方法重载是一种多态性,在这种多态性中,同一逻辑方法在实践中可以多种方式使用。方法重载与方法不同方法重写是指父类中方法的定义被子类更改的地方。在这种情况下,两个方法将具有相同的签名。