UVM callbacks vs factory override

Hello Everyone,
Please help me finding the exact difference between UVM callbacks and factory override. Ive searched a lot but couldnt find the satisfactory answer.
Thanks in advance