You learned that inheritance lets you build on existing classes without duplicating code. The Vector3D base class defines coordinates once, and any derived class gets them automatically.
Protected members are accessible to derived classes but not to outside code. This gives you controlled sharing: derived classes can use the internals, but external code must go through public methods.
The pattern of accumulating into a result object is common. Instead of tracking three separate sums, you track one ForceVector that accumulates.