Why use Inheritance?

Java allows us to define a class as being an extension of some other class. Instead of writing a new class from scratch we can say its just like some existing class, but with various extra features and / or modifications. This facilitates the re-use of existing code and is a major advantage of object oriented programming. By using the existing software components to create new ones, we capitalize on all the effort that went into the design, implementation and testing of the existing software.