Questions tagged «overloading»

术语重载和重载可以指:-构造函数和方法重载,一种多态性,其中基于传递的参数的数据类型调用具有相同名称的不同函数-运算符重载,一种函数或方法重载的形式,其中重载的操作是运算符,例如+或-

23
Java是否支持默认参数值?
我遇到了一些具有以下结构的Java代码: public MyParameterizedFunction(String param1, int param2) { this(param1, param2, false); } public MyParameterizedFunction(String param1, int param2, boolean param3) { //use all three parameters here } 我知道在C ++中可以为参数分配默认值。例如: void MyParameterizedFunction(String param1, int param2, bool param3=false); Java是否支持这种语法?有什么理由使两步语法更可取?

30
Javascript中的函数重载-最佳做法
用JavaScript伪造函数重载的最佳方法是什么? 我知道不可能像其他语言一样重载Javascript中的函数。如果我需要一个函数有两个用途foo(x)和foo(x,y,z)这是最好的/优选的方法: 首先使用不同的名称 使用类似的可选参数 y = y || 'default' 使用参数数量 检查参数类型 或如何?


21
多态性vs覆盖vs重载
就Java而言,当有人问: 什么是多态性? 将超载或重载是一个可以接受的答案? 我认为还有更多。 如果您有一个抽象基类,它定义了一个没有实现的方法,并且您在子类中定义了该方法,那该方法是否仍然覆盖? 我认为 过载不是肯定的正确答案。

17
您可以在ASP.NET MVC中重载控制器方法吗?
我很好奇您是否可以在ASP.NET MVC中重载控制器方法。每当我尝试时,都会出现以下错误。这两种方法接受不同的参数。这是无法完成的事情吗? 在以下操作方法之间,当前对控制器类型“ MyController”的操作“ MyMethod”的请求不明确:


6
TypeScript函数重载
TypeScript语言规范的6.3节讨论了函数重载,并提供了有关如何实现此功能的具体示例。但是,如果我尝试这样的事情: export class LayerFactory { constructor (public styleFactory: Symbology.StyleFactory) { } createFeatureLayer (userContext : Model.UserContext, mapWrapperObj : MapWrapperBase) : any { throw "not implemented"; } createFeatureLayer(layerName : string, style : any) : any { throw "not implemented"; } } 我收到一个编译器错误,指示重复的标识符,即使函数参数的类型不同。即使我向第二个createFeatureLayer函数添加了一个附加参数,我仍然会遇到编译器错误。请给我个主意。

14
如何在C中实现函数重载?
有什么方法可以在C中实现函数重载吗?我正在看简单的函数要重载像 foo (int a) foo (char b) foo (float c , int d) 我认为没有直接的方法。我正在寻找解决方法(如果存在)。
240 c  overloading 

15
Python函数重载
我知道Python不支持方法重载,但是我遇到了一个似乎无法用一种很好的Pythonic方法解决的问题。 我正在制作一个角色需要射击各种子弹的游戏,但是如何编写用于创建这些子弹的不同功能?例如,假设我有一个函数,该函数创建一个以给定速度从A点移动到B点的子弹。我会写一个像这样的函数: def add_bullet(sprite, start, headto, speed): ... Code ... 但是我想编写其他创建项目符号的功能,例如: def add_bullet(sprite, start, direction, speed): def add_bullet(sprite, start, headto, spead, acceleration): def add_bullet(sprite, script): # For bullets that are controlled by a script def add_bullet(sprite, curve, speed): # for bullets with curved paths ... And so on ... 以此类推。有没有一种更好的方法可以在不使用太多关键字参数的情况下实现快速更新呢?重命名各功能是非常糟糕的一点,因为你要么add_bullet1,add_bullet2或add_bullet_with_really_long_name。 …

8
从列表<Integer>中正确删除一个整数
这是我刚遇到的一个陷阱。考虑一个整数列表: List&lt;Integer&gt; list = new ArrayList&lt;Integer&gt;(); list.add(5); list.add(6); list.add(7); list.add(1); 关于执行时会发生什么的任何有根据的猜测list.remove(1)?那list.remove(new Integer(1))呢 这可能会导致一些令人讨厌的错误。 在处理整数列表时,区分remove(int index)从给定索引remove(Object o)中删除元素的和,按引用删除元素的正确方法是什么? 这里要考虑的重点是提到的@Nikita-精确参数匹配优先于自动装箱。

10
PHP函数重载
来自C ++背景;) 如何重载PHP函数? 一个函数定义(如果有参数),另一个函数定义(无参数)?PHP中有可能吗?还是应该使用if来检查$ _GET和POST是否传递了任何参数?并联系他们?

15
如何在Python中使用方法重载?
我正在尝试在Python中实现方法重载: class A: def stackoverflow(self): print 'first method' def stackoverflow(self, i): print 'second method', i ob=A() ob.stackoverflow(2) 但是输出是second method 2; 类似地: class A: def stackoverflow(self): print 'first method' def stackoverflow(self, i): print 'second method', i ob=A() ob.stackoverflow() 给 Traceback (most recent call last): File "my.py", line 9, in &lt;module&gt; ob.stackoverflow() …

7
为什么Scala编译器不允许使用默认参数重载方法?
尽管在某些情况下,这种方法重载可能会变得模棱两可,但为什么编译器却不允许在编译时和运行时都模棱两可的代码呢? 例: // This fails: def foo(a: String)(b: Int = 42) = a + b def foo(a: Int) (b: Int = 42) = a + b // This fails, too. Even if there is no position in the argument list, // where the types are the same. def foo(a: Int) …

7
空参数的方法重载
我添加了三个带有参数的方法: public static void doSomething(Object obj) { System.out.println("Object called"); } public static void doSomething(char[] obj) { System.out.println("Array called"); } public static void doSomething(Integer obj) { System.out.println("Integer called"); } 当我打电话时doSomething(null),编译器将错误作为模棱两可的方法抛出。那么问题是因为Integer和char[]方法还是Integer和Object方法?
133 java  oop  null  overloading 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.