2

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

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

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

4

1 回答 1

5

是的,有4种多态性

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

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

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

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

参考:

于 2013-08-24T01:48:23.963 回答