Covariance and contravariance provides implicit reference conversion for Arrays, Delegates and Generic parameter types.
IEnumerable<string> strings = new List<string>();
IEnumerable<object> objects = strings;
Action<object> actObject = SetObject;
Action<string> actString = actObject;
Does normal object base type derived type conversion come under Covariance and contravariance as stated below ?
ChildClass childobj=new ChildClass;
BaseClass baseobj=childobj;
BaseClass baseobj=new BaseClass;
ChildClass childobj= (BaseClass) baseobj;
If so how runtime handles it and If not why?