.net中的重载,就是在同一个类中存在多个同名的方法,而这些方法的参数列表和返回值类型不同。值得注意的是,重载的概念并非面向对象编程的范畴,从编译器角度理解,不同的参数列表、不同的返回值类型,就意味着不同的方法名。也就是说,方法的地址,在编译期就已经确定,是这一种静态绑定。

从示例中,我们总结重载的基本特征包括:

重载存在于同一个类中。

重载方法要求具有相同的方法名,不同的参数列表,返回值类型可以相同也可以不同(通过operator implicit 可以实现一定程度的返回值重载,不过不值得推荐)。

.NET 2.0引入泛型技术,使得相同的参数列表、相同的返回值类型的情况也可以构成重载。

重载就是一些几个函数名字完全一样,但参数类型或个数不一样,实际调用将按参数类型来区分

比如,你现在有2个Max函数
1)

int Max(int i,int j){}

2)

float Max(float i,float j){}

在你的程序内

int i,j,k;k=Max(i,j);//将调用第一个Maxfloat x,y,z;z=Max(x,y);//将调用第二个Max

显然重载也具备多态性, 但这样多态是基于原代码级别的多态, 以上2个Max函数在文本下是同名,但经过编译后,内部名字是不一样,要加上参数类型等一些信息,这个过程叫名字连编, 在编译调用Max的源代码时,编译器根据调入时的参数选择调用正确的Max函数

更多相关文章

  1. c语言属于什么类型的编程语言
  2. char是什么数据类型
  3. c++类型转换
  4. 浅谈C#方法的六种参数
  5. c语言float类型小数点后有几位有效数字?
  6. c语言long类型是什么意思
  7. c语言中的关键字有哪些类型?
  8. c语言中形参的默认存储类型是什么?
  9. c语言数据类型转换的方法

随机推荐

  1. EditText对行光标默认第一行问题
  2. Android 中的 R.class,减小 Apk 包大小
  3. Android支持的媒体格式
  4. android仿京东商城例子
  5. 使用ContentProvider时出现SecurityExcep
  6. android快捷卸载第三方应用
  7. android socket客户端app
  8. Android——ScrollView
  9. android > styles
  10. android控件相对布局