Citation:
The static type refers to the declared type of a variable or expression at compile-time. It determines the set of operations that can be performed on the variable or expression.
The dynamic type refers to the actual type of an object at runtime, which may be different from its static type.
Type Casting: Type casting is the process of converting an object from one data type to another.
Variable declaration involves specifying the name and data type (static type) of a variable before using it in a program.