A classe Retangulo herda de uma classe vazia, sendo assim ela não aproveita nenhum de seus atributos e deve definir todas as variáveis e métodos. Uma relação de herança é definida em Java por meio da palavra chave extends utilizada como no exemplo seguinte:
public class Retangulo extends Forma { private int largura ; private int comprimento ; public Retangulo(int x, int y) { this.largura = x ; this.comprimento = y ; } public int getLargura() { return this.largura ; } public int getComprimento() { return this.comprimento ; } public int area() { return this.comprimento * this.largura; } public void mostrar() { System.out.println(”retangulo ” + comprimento + ”x” + largura); } }
Em revanche, a classe Quadrado pode se beneficiar da classe Retangulo e não precisa reescrever os métodos que se aplicam à subclasse. Todos os métodos e variáveis da classe Retangulo são acessíveis dentro da classe Quadrado. Para que um atributo possa ser utilizado pela subclasse é preciso que seu tipo de acesso seja public ou protected, ou se as duas classes pertencerem a um mesmo package que utilize um tipo de acesso padrão. No exemplo anterior, as variáveis comprimento e largura não são acessíveis dentro da classe quadrado, entretanto a classe poderá utilizar os métodos getLargura() e getComprimento() para obter os valores, visto que esses métodos foram declarados como public.