In the previous chapter, you learned that method overriding can help you to achieve runtime polymorphism. In this chapter, you will further explore the concept with two powerful techniques—abstract classes and interfaces. In addition to this, you will also learn how interfaces can help you to implement the concept of multiple inheritance in Java. Once you master these concepts, you can make your program super flexible. Let’s start with abstract classes.
Abstract Classes
Sometimes you start a work, but you may not complete it, ...