What Are The Rules For Object Reference Assignment And Method Call Conversion

An interface type can only be converted to an interface type or to object. If the

new type is an interface, it must be a superinterface of the old type.

A class type can be converted to a class type or to an interface type. If converting to a

class type the new type should be superclass of the old type. If converting to an

interface type new type the old class must implement the interface.

An array maybe converted to class object, to the interface cloneable, or to an array.

Only an array of object references types may be converted to an array, and the old

element type must be convertible to the new element