多态的类型。超过一个?

时间:2013-08-24 01:43:06

标签: c# java polymorphism

我还在上大学,只记得在学习Java时听到过一种类型的多态性;但是,当我在C#课上时,我只记得我的教授谈论了4种类型的多态性。

我只知道子类化和在更具体的类中定义特定行为,并且能够通过接口签名在基类中使用单个方法调用这些特定行为。

其他类型是什么,它们是否与我们上面教授的唯一类型一样重要?这就是没有教过的原因吗?

1 个答案:

答案 0 :(得分:4)

是的,有4种多态

  1. 重载(相同的函数名,不同的参数类型。这包括运算符重载并在编译时完成)

  2. 参数化多态(这些就像C ++中的模板一样)编译时间

  3. 子类型多态(如果函数有一个带子类型的参数,例如Car-> Honda,f(Car),那么函数f也将接受f(本田) 。)运行时

  4. 参数强制(这是一个隐式类型转换。例如,一个函数可能需要一个double / real / float,但是会接受一个int并隐式转换参数) 编制时间

  5. 参考: