The core insight is that a Vector3D base class can hold the coordinates and basic operations, while a ForceVector derived class adds physics-specific behavior. You inherit the storage and getters from the base, then add methods like accumulate() or isEquilibrium() in the derived class.
For this problem, the equilibrium check is simple: sum all x-components, all y-components, and all z-components. If all three sums equal zero, output YES.