3 - Redefinição de Métodos

A herança integral de atributos da classe Retangulo apresenta dois problemas:

1 - É necessário que cada quadrado possua largura e comprimentos iguais.
2 - O método mostrar escreve a palavra “Retangulo” no início do texto. Seria desejável que fosse escrito “Quadrado”.

Ainda, os construtores não são herdados por uma subclasse. É necessário então ter um construtor específico para a classe Quadrado. Isso nos permitiria resolver o primeiro problema, pois poderíamos ter um construtor que recebe apenas uma medida. Para atribuir esse valor aos atributos comprimento e largura (que são privados) deveremos lançar mão do construtor da classe Retangulo utilizando a palavra-chave super que chama o construtor da classe superior, como segue:

public Quadrado(int lado) {
super(lado, lado);
}
  • A chamada a um construtor da classe superior deverá sempre estar localizada no construtor da classe e sempre como a primeira instrução
  • Se nenhuma chamada ao construtor de uma classe superior for feita, o construtor chamará implicitamente um construtor vazio da classe superior (como se escrevêssemos super()). Se nenhum construtor vazio for acessível na classe superior, será gerado um erro na hora da compilação.
Copyright © 2014 AIEC.