06 — Interfaces & Abstract classes
Interfaces
- Define a contract: methods without implementation (until default methods in later Java versions).
- A class
implementsan interface and must provide implementations for its methods.
Abstract classes
- Can contain implemented and abstract methods. Use when there's shared code among subclasses.
When to use
- Use interface for capabilities ("can-do"), abstract class when sharing state/implementation between related classes.
Example: InterfacesAbstractExample.java demonstrates an interface Driveable and an abstract class Vehicle.