If I explain you in short if the typecasting is done by the compiler then it is called implicit for example:
float c= a+b;
in above two statements we can say that the summation of a and b will be int but if we store it in float variable it will automatically changed to float this is called implicit typecasting.
if the typecasting is done by the programmer explicitly then it is called explicit for example:
int c= a+b;
in above two statements we can say that the summation of a and b will be float but we explicitly typecast it to int and we store it in int variable but in this the risk of error is there.