Nous avons vu comment définir une classe par composition d'autres classes. Java propose une autre technique typique des langages de classes, dite d'extension, qui permet de réutiliser une (seule) classe, en héritant de ses membres. L'héritage est un mécanisme des langages à objets particulièrement utile en génie logiciel.
Par exemple, on peut définir une classe PointColore comme une extension de Point, à l'aide de la clause extends, et de lui ajouter un champ de type java.awt.Color. La classe Point est dite parente ou sur-classe directe de PointColore, celle-ci étant dérivée, ou sous-classe directe de Point :
package geometrie; class PointColore extends Point { java.awt.Color couleur; PointColore(double x, double y, java.awt.Color couleur) { super(x, y); this.couleur = couleur; } PointColore() { super(); this.couleur = java.awt.Color.black; } }