Q4When do you choose interface vs abstract class?
Interface for capability contracts (multiple inheritance, no state). Abstract class for family hierarchies (shared state, constructors). Java 8 default methods help but still no constructors, no instance fields, no protected methods.