哪些语言支持继承方法的返回类型的协方差?

时间:2020-03-05 18:48:34  来源:igfitidea点击:

我最初问这个问题,但是在找到答案时,发现我最初的问题是Cfor对继承方法的返回类型的协方差缺乏支持。发现这一点之后,我对哪些语言支持此功能感到好奇。

我会接受谁能说出最多的名字的答案。

编辑:约翰·米利金(John Millikin)正确地指出,许多动态语言都支持这一点。澄清:

我只在寻找静态/强类型语言。

解决方案

回答

任何动态语言,当然是-Python,Ruby,Smalltalk,Javascript等。

回答

but I think thats what I'm asking for..or is it?

坦白说,我不知道你在问什么。 Java显然对返回类型协方差的支持与C#相同,因此,如果我们要查找的内容缺少C#,那么Java也将缺少它。

回答

Basically what I'm asking is what languages support what I'm trying to do here.

Clet是否为get()和set()方法指定不同的数据类型?如果没有,我会将它们拆分为实际的" Leg get_leg()"和" set_leg(DogLeg)"功能。否则将发生以下两种情况之一:1)get_leg()的规范过高2)set_leg()的规范过低。

回答

C ++支持协变返回类型。

回答

  • C ++
  • 爪哇
  • 真正的
  • 埃菲尔铁塔
  • 萨瑟
  • 模数3

回答

Java在1.5中添加了对此的支持。它不会在早期版本中编译。

回答

正如Ivan Hamilton和Mat Noguchi指出的那样,C ++支持该功能。但是请注意,对于从MSVC 7.X到9.X(可能还有6)继承的模板类,协变量返回类型是无效的。我们收到错误C2555.