Why use private fields in a class?
How do invariants affect class design?
Why is loose coupling important in software design?
Why does a getter method matter in this design?
Why move stock level checks inside the Product class?
When is an interface usually a better fit?
How would you explain an interface in a Java interview?
Why are interfaces important for multiple inheritance?
How does using interfaces promote loose coupling?
Why does default methods in interfaces matter in this design?