Comments on Casting
Casting (type conversion) is supported between types and class types. Syntax:
Two forms of casting are possible: widening and narrowing
Widening, where the subclass is used as an instance of the superclass, is performed implicitly
Narrowing, where the superclass is used as an instance of the subclass, must be performed explicitly
Given Parent: Dot -> DrawableDot (Child):
- Widening: An instance of DrawableDot is used as an instance of Dot
- Narrowing: An instance of Dot is used as an instance of DrawableDot
Casting between sibling classes is a compile-time error
Note that otherwise conversions between types are given explicitly by methods within the class.