Java vs Smalltalk - covarince和contravariance

use*_*595 -4 smalltalk covariance contravariance

Smalltalk是否支持协方差和逆变?这些概念适用于这种语言吗?

Dav*_*uck 5

协方差和逆变是与声明的参数类型和返回值相关的概念.例如,如果子类方法中的参数类型可以指定比超类中的类型更通用的类型,则方法参数是逆变的.

Smalltalk没有静态类型声明.您可以应用协方差和逆变的概念,但由于该语言允许您向任何对象发送任何消息,因此它不会强制执行协方差和逆变可能带来的任何规则.

所以,是的,Smalltalk支持协方差和逆变,因为它允许你使用这些概念,而不是因为它只是不关心这种或那种方式.