Difference between $cast and strongly typed

what is the difference between $cast and strongly typed?
advantage of strongly typed over $cast?

In reply to muku_383:

Strongly typed and $cast go together.

Strongly typed” is a characteristic of a computer language having strict requirements on assignments from one data type to another. This is in contrast to a weakly typed language that freely allows assignments between different data types, including those assignments that would lose information.

For example, Verilog is weakly typed when in comes to integral and real types. You can assign a 32-bit packed integer to a 16-bit packed integer and it will implicitly truncate bits to fit in the target variable.

Most other data types in SystemVerilog are strongly typed. Assignments from base class variables to extended class variables require the use of the $cast function.