“重载” /“重载”在编程方面是什么意思?

有帮助吗?

解决方案

这意味着您要提供一个具有相同名称但签名不同的函数(方法或运算符)。 例如: 通用标签

其他提示

基本概念

重载或“方法重载”是一个概念的名称,它具有多个具有相同名称但具有不同参数的方法。

例如c#中的System.DateTime类具有多个ToString方法。标准的ToString使用系统的默认区域性将日期时间转换为字符串: 通用标签

而相同方法的另一个重载允许用户自定义格式: 通用标签

有时参数名称可能相同,但参数类型可能不同: 通用标签

将小数点转换为int时 通用标签

将字符串转换为整数。

过载分辨率

为了找到最佳的重载调用,编译器执行名为“重载解析”的操作。对于第一个示例,编译器只需匹配参数计数即可找到最佳方法。对于第二个示例,如果传递十进制参数,则编译器将自动调用replace方法的十进制版本;如果传递字符串参数,则编译器将自动调用字符串版本。从可能的输出列表中,如果编译器找不到合适的输出来调用,则会出现诸如“最佳重载与参数不匹配...”之类的编译器错误。

您可以找到很多有关不同编译器如何执行重载解析的信息。

一个函数具有多个签名时,该函数将被重载。这意味着您可以使用不同的参数类型来调用它。例如,您可能具有在屏幕上打印变量的功能,并且可以为不同的参数类型定义它: 通用标签

在这种情况下,函数print()将具有三个重载。

表示具有相同功能的不同版本,这些版本采用不同类型的参数。这样的功能是“过载的”。例如,采用以下功能: 通用标签

您可以使用此功能在屏幕上打印字符串。但是,当您要打印整数时,不能使用此函数,然后可以制作该函数的第二个版本,如下所示: 通用标签

现在该函数已重载,并且将调用该函数的哪个版本取决于您提供给它的参数。

其他人回答了超载是什么。一开始,它会与覆盖/覆盖混淆。

与重载相对,重写是在子类(或子类)中定义具有相同签名的方法,该方法将覆盖父类的实现。某些语言需要明确的指令,例如C ++中的virtual成员函数或Delphi和C#中的override 通用标签

重载方法是一种带有多个参数数目和类型选项的方法。例如: 通用标签

两者都会做相对相同的事情,但其中一个具有第二个参数以提供更多选项

同样,您可以使相同的方法采用不同的类型 通用标签

就像在通常用法中一样,它指的是某种事情(在这种情况下,是一种方法名),可以完成多项工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top