Casting 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
|