downcast

In class-based programming, downcasting, or type refinement, is the act of casting a base or parent class reference, to a more restricted derived class reference. This is only allowable if the object is already an instance of the derived class, and so this conversion is inherently fallible. In many environments, type introspection can be used to obtain the type of an object instance at runtime, and then use this result to explicitly evaluate its type compatibility with another type. The possible results of comparing polymorphic types—besides them being equivalent (identical), or unrelated (incompatible)—include two additional cases: namely, where the first type is derived from the second, and then the same thing but swapped the other way around (see: Subtyping § Subsumption). With this information, a program can test, before performing an operation such as storing an object into a typed variable, whether that operation is type safe, or whether it would result in an error. If the type of the runtime instance is derived from (a child of) the type of the target variable (therefore, the parent), downcasting is possible. Some languages, such as OCaml, disallow downcasting.

Similar Artists

The Maine

No Pressure

Waterparks

Plain White T's

Against The Current

Paramore

Sleeping With Sirens

The All-American Rejects

Stand Atlantic

Falling In Reverse

Bayside

All Time Low

Real Friends

jxdn

A Day To Remember

Neck Deep

blink-182

Cory Wells

Good Charlotte

Backslashes and Bad Ideas