@jenniferplusplus
Not exactly, but related. Underlying mechanism is the same: depend on interface, someone else provides impl.
DI is closely associated with testability, and is often used to replace an A→B dependency that could have been an explicit constructor call from A but instead you hide the impl of B (thus the “injection,” libs to allow swapping impls via configuration, etc).
1/2