In This Chapter
Understanding abstract methods and classes
Using basic interfaces
Using interfaces as types
Adding constants to an interface
Working with callbacks
Using default methods
In this chapter, you find out how to use two similar but subtly distinct features: abstract classes and interfaces. Both let you declare the signatures of the methods and fields that a class implements separately from the class itself. Abstract classes accomplish this by way of inheritance. Interfaces do it without using inheritance, but the effect is similar.