the programming language tips
重载与重写
问题
日常讨论中,术语的不统一带来些许混乱
惯用的表达
| overload | 重载 | 函数名称相同,参数不同(严格的定义还有其它一些限制) | 静态决议 |
| override | 重写(覆写,覆盖,改写) | 子类重新定义父类定义过的虚函数(个别语言允许返回值,访问级别可以不同) | 动态决议 |
示例
|
class base { } class derived:base { } class client { void test(base obj){ console.writeline("base"); } void test(derived obj){ console.writeline("derived"); } static void main(string[] args) { base obj = new derived(); new client().test(obj); //输出“base” } } |