Interfaces provide multiple inheritance capabilities and focus on defining behavior.
Interfaces allow multiple inheritance, meaning a class can implement multiple interfaces, while it can only extend one abstract class. Interfaces focus on defining behaviors, whereas abstract classes can provide some implementation. For example, an interface `Printable` might define `print()`, while an abstract class might offer a partially implemented `print()` method.
Additional Notes
Why do teams use interfaces over abstract classes in production code?