pdi*_*ddy 2 .net c# polymorphism
为什么重载被认为是多态的一种形式,或者是实现多态的一种方式.
我的多态性意味着多种形式,我不太明白超载有助于实现这一目标.
多态性是在运行时发生的事情.就OOP而言,它是调用方法的实践,并且在编译时不知道该方法将被调用哪个对象.经典的例子是Shapes,Circles,Squares等.你有一个Shapes集合,每个Shapes都被实例化为Circle,Square等等.编译器既不知道也不关心你在任何给定时间调用Draw或Erase打开哪种类型的形状; 程序运行时会发生这种情况.
方法重载发生在编译时.您有多个具有相同名称但参数不同的方法.当您调用其中一个方法时,编译器将根据您提供的参数确定哪个重载最匹配.
为什么重载被认为是多态的一种形式,或者是实现多态的一种方式.
在root上,多态性是在同一API下处理多个类型的能力.从技术上讲,方法重载确实属于这个问题.事实上,根据维基百科,方法重载被称为"ad-hoc多态",但我从未听过现实生活中使用过的这个术语(并不是说我是最后的权威). 通常,多态性仅指方法的动态绑定,如Shape,Circle,Square示例.
还有"参数多态",虽然这通常是我可能有限的经验,根据语言被称为泛型或模板(它们不相同;两者之间存在细微差别)
| 归档时间: |
|
| 查看次数: |
3049 次 |
| 最近记录: |