Subtype polymorphism: Upcasting and late binding. Subtype polymorphism relies on upcasting and late binding. Upcasting is a form of casting where you cast up the inheritance hierarchy from a subtype to a supertype . No cast operator is involved because the subtype is a specialization of the supertype.