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 contrast upcasting, explicitly treating an object as if it's an instance of one of its superclasses, is always possible.
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.
To Surrender
- 2025-08-22T00:00:00.000000Z
OVER IT
- 2025-06-27T00:00:00.000000Z
Double Deez
- 2025-05-30T00:00:00.000000Z
Wobble Back
- 2025-04-18T00:00:00.000000Z
BLACKOUT
- 2025-02-21T00:00:00.000000Z
The Fall
- 2024-10-31T00:00:00.000000Z
Pressure
- 2024-06-26T00:00:00.000000Z
Revelations
- 2023-11-24T00:00:00.000000Z
Mutilation
- 2023-10-31T00:00:00.000000Z
Snatch & Grab
- 2023-07-14T00:00:00.000000Z
Undesirable
- 2022-11-12T00:00:00.000000Z
Similar Artists