协变、抗变英文分别是   Covariance 、Contravariance   ,形容词为 '-ce '==>   '-t '

这是数学和物理学术语,在OO领域中也有应用。
“共变”、“逆变”是一种译法,另外一种译法是“协变”、“抗变”。特别在OO领域,基本上都是用后面这组。此外还有“不变(Nonvariance)”。

在OO中,协变是指按照继承链正向改变,抗变是指逆向改变。示例如下:

class   Base
{
public:
        virtual   RB   func(PB);
}

class   Derived   :   public   Base
{
public:
        virtual   RD   func(PD);
}

此处Base::func   和   Derived::func   表示同一个虚函数。XB是Base中的返回值和形参;XD表示字类中的。则协变表示XD继承XB(与Derived   --   Base的关系相协);抗变表示XB继承XD(与Derived   --   Base的关系相抗),不变当然是XD与XB相同。
目前,一般认为,返回值可以协变;参数则不可以(也有认为参数可以抗变)。


声明:本文转载于http://blog.csdn.net/miyunhong/archive/2009/09/16/4557517.aspx

相关文章:

  • 2022-12-23
  • 2021-11-16
  • 2022-12-23
  • 2022-12-23
  • 2021-09-05
  • 2018-08-20
  • 2021-10-03
猜你喜欢
  • 2021-06-27
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2019-07-25
  • 2021-08-07
  • 2022-12-23
相关资源
相似解决方案