这取决于您使用的语言,以及您如何使用它.
例如,在Java中,重载决策始终在编译时执行,并且在执行时执行覆盖分辨率.
在C#中,它通常仍然是正确的 - 但如果您使用的是C#4的动态类型,则在执行时也会执行重载决策:
static void Foo(int y) {}
static void Foo(string y) {}
...
dynamic x = 10;
Foo(x); // Calls Foo(int)
x = "hello";
Foo(x); // Calls Foo(string)
Run Code Online (Sandbox Code Playgroud)
还有很多其他语言也是动态表现的.因此,您确实需要了解当时使用的语言的行为.
| 归档时间: |
|
| 查看次数: |
2446 次 |
| 最近记录: |