This important aspect of the class concept reflects the manner in which Java facilitates code modularization. Classes provide the primary unit for decomposing a software system into understandable and manageable pieces. In turn, that modularization significantly aids the comprehensibility of larger systems. Class inheritance through the Java extends clause further facilitates modularization. Module, or implementation, inheritance offers a way to create subclasses that automatically utilize implementation code from the superclass module.
Subclasses build on superclass implementation and thus provide a means for module extension.
This implementation-centric view of inheritance emphasizes code reuse. Java classes also play an additional significant role. As well as providing implementation code, every class also defines a type. We often speak of this type as the public interface to the class. That terminology is somewhat confusing in light of the Java language interface keyword.