Originally posted by Kedar Dravid:
If SourceType is an interface type, then, the reference value in srcref may be assigned to the destref reference, provided DestinationType is one of the following:
DestinationType is Object
DestinationType is a superinterface of subinterface SourceType
So, in the case of Test2, since ref is an Object, ref instance of I is valid.