Developers typically use field injection only on small projects and prototypes, due to its inability to support immutable variables and the incompatibilities it creates with many testing frameworks.
Twenty-three years ago, in his Design Principles and Design Patterns article, Robert "Uncle Bob" Martin boiled down the Liskov substitution principle to the idea that "derived classes should be ...