Type casting is a way to check the type of an instance and/or deal with that instance as if it is a different superclass or subclass from somewhere else in its class hierarchy. There are two types of operator to check and cast types as the following:
- Type check operator (is): This checks whether an instance is of a definite subclass type.
- Type cast operator (as and as?): A constant or variable of a definite class type may refer to an instance of a subclass under the hood. If this is the case, we can try to downcast it to the subclass type with as.
Type safety, type inference, annotation, aliases and type casting will be covered in detail in Chapter 3, Types and Type Casting.