Imagine that you hold a position very stiff in your arm. You are holding your muscles tight to keep that position and hold it very tightly. Then you walk to move your arm without moving your arm with your arm muscles and crash into a wall. You will hurt yourself cause you tried to go there very stiff and didn't care what you would came in contact with as long as the position is hold.
Now imagine that you hold in front a memory-pillow in front of your arm. That can be analog to have another link in your serial robot configuration. Then you crash into a wall but the pillow will compress (not very stiff spring) itself loosing position and reducing the contact force (impedance).
In a very broad sense the impedance controller looks similar to a PD controller (computed torque or augmented computed torque). It is also possible to do an impedance controller without a force sensor (no shape of the apparent inertia) and the main difference with a position controller is the lack of an integral gain that will make it converge to a zero steady state error.
The force controller requires a measurement/estimation of the force to close the control loop and a force reference is needed to be tracked, the impedance controller does not need a force to track.