多态性的类型.不止一个

本文关键字:一个 类型 不止 多态性 | 更新日期: 2023-09-27 18:28:54

我还在上大学,只记得在学习Java时听说过1种类型的多态性;然而,当我在C#课堂上的时候,我只记得我的教授谈到了4种类型的多态性。

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

其他类型是什么?它们是否与我们上面学到的唯一类型一样重要?这就是为什么没有人教?

多态性的类型.不止一个

是的,有4种多态性

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

  2. 参数多态性(这些类似于C++中的模板)编译时

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

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

参考:

  • Cardelli&韦格纳