Según la definición de la Wikipedia:
La Inyección de Dependencias es un patrón de diseño de software que permite modificar las dependencias del código dinámicamente, tanto en tiempo de compilación como en tiempo de ejecución.
El problema de esta definición es que hace que la inyección de dependencias sea mucho más complicada de lo que en realidad es. En la práctica, la inyección de dependencias consise en pasar a los componentes de software sus dependencias mediante sus constructores, sus propiedades o sus métodoso setter. Así de sencillo.