Dynamic dispatch means , the process of programming language, calling a method is determined at the run time depending on the parameters type.Where as in static dispatch , every method is known at the compile time.

Dynamic expression says ” This operation will be resolved at run time.”

Also , if in the above example , we try to write str++; then it will not throw any error at compile time but will fail at run time as at run time its type is evaluated to be string and increment operator is invalid.