This lecture considers the idea of a pure abstract class, in which all methods are abstract. It then looks at a similar but much more commonly used concept in Java: the interface. The idea that interfaces are partly the result of Java’s lack of support for multiple inheritance is explored. The lecture then looks at the syntax for defining and using interfaces. It concludes by considering how interfaces can be used to create a version of the picture drawing application from Lecture 11, in which images can be drawn as well as shapes.