So far you've built classes, used inheritance, and worked with method overriding. But what happens when you need a class to follow a contract without dictating how it's built? That's where interfaces come in.
In this section, I'll show you interfaces, abstract classes, and how Java uses them to enable flexible, swappable designs. You'll also meet Comparable, Comparator, Iterable, and get a preview of lambdas.