First, it's used to automatically provide some core functionality. In addition, it's used guarantee the functions an object will provide. Since an object inherits all of the ancestors methods, someone using the object knows that they will all be available. Java allows you to use a member of a subclass anywhere a member of a superclass is permitted. Note that if you do not provide an extends clause, Java assumes that your object extends java.lang.Object .
Single inheritance makes analysis and design much easier.
Otherwise, there are potential problems with the same method name being defined in both parent classes. Java provides interfaces to support many of the needs of multiple inheritance. Generalizing and Extending Let's try to come up with a generic GamePiece class and then see how the various classes we just wrote relate to that class. Polymorphism Inheritance permits subclasses to reuse the fields and methods of superclasses. But there are also other kinds of reuse we'd like to do.