本帖最后由 陈丽莉 于 2013-1-28 19:25 编辑
4.override和overload
Override 是在继承的时候,如果你写的函数与要继承的函数函数特征相同,那么,加上这个关键字,在使用这 个子类的这个函数的时候就看不见父类(或超类)的函数了,它被覆盖掉了。 比如:Derived继承了Base,Base里面有void A(int a) ,那么如果你Derived里面觉得A写得不好或不适合这个 类,你想重新再写一遍A里的代码,那么就写override void A(int a)这样,原来的那个函数就被你新写的这个覆盖 掉了。
Overload 是重载,就是说函数名相同,函数特征不同,系统会根据你提供的参数来调相应的函数。
比如:void A(int a)和void A(int a,int b) 如果你用的是A(1)那么调的是第一个,如果是A(1,1)那么调的是第二个。
注意:
- 重写基方法必须与重写方法具有相同的签名。
- 不能重写非虚方法或静态方法。重写基方法必须是虚拟的、抽象的或重写的。
- 也就是说,用 override 修饰符重写的基类中的方法必须是 virtual, abstract 或 override 方法。
- 当类包含两个名称相同但签名不同的方法时发生方法重载
原文链接:http://blog.csdn.net/cjr15233661143/article/details/8546946
|