DEV Community

Herança

  • Herança é um dos três princípios básicos da programação orientada a objetos.

  • Permite a criação de classificações hierárquicas.

  • Com herança, você pode criar uma classe geral que define características comuns a um conjunto de itens relacionados.

  • Essa classe geral pode ser herdada por outras classes mais específicas, que adicionam características exclusivas.

  • No jargão Java, a classe herdada é chamada de superclasse.

  • A classe que herda é chamada de subclasse.

  • A subclasse é uma versão especializada da superclasse.

  • A subclasse herda todas as variáveis e métodos da superclasse e adiciona seus próprios elementos exclusivos.

Aspectos básicos de herança

  • Java suporta herança, permitindo que uma classe incorpore outra em sua declaração.

  • Isso é feito com a palavra-chave extends.

  • A subclasse adiciona funcionalidades (estende) à superclasse.

  • Um exemplo disso é a criação de uma superclasse chamada TwoDShape, que armazena a largura e a altura de um objeto bidimensional.

  • Uma subclasse chamada Triangle é criada para estender TwoDShape.

  • A palavra-chave extends é usada para criar a subclasse.

Image description

Image description

  • TwoDShape define atributos de uma forma bidimensional genérica, como quadrado, retângulo, triângulo, etc.

  • A classe Triangle é uma subclasse de TwoDShape e cria um tipo específico: o triângulo.

  • Triangle herda tudo de TwoDShape e adiciona o campo style, o método area(), e o método showStyle().

  • style armazena o estilo do triângulo, que pode ser qualquer descrição como "cheio", "contorno", ou "isósceles".

  • O método area() calcula e retorna a área do triângulo.

  • O método showStyle() exibe o estilo do triângulo.

  • Triangle pode acessar os membros width e height de TwoDShape, tanto em area() quanto diretamente nos objetos t1 e t2.

  • TwoDShape, apesar de ser superclasse de Triangle, é uma classe independente e pode ser usada separadamente.

TwoDShape shape = new TwoDShape();
shape.width = 10;
shape.height = 20;
shape.showDim();

  • Um objeto da classe TwoDShape não conhece nem acessa qualquer subclasse de TwoDShape.

Image description

  • Declaração class que herda uma superclasse:

class nome-subclasse extends nome-superclasse {
// corpo da classe
}

  • Em Java, você só pode especificar uma única superclasse para qualquer subclasse criada.

  • Java não suporta herança múltipla (herança de várias superclasses na mesma subclasse), ao contrário de C++.

  • É possível criar uma hierarquia de herança onde uma subclasse se torna a superclasse de outra subclasse.

  • Nenhuma classe pode ser superclasse de si mesma.

  • Uma vantagem da herança é que uma superclasse pode definir atributos comuns a vários objetos, permitindo a criação de inúmeras subclasses específicas.

  • Cada subclasse pode definir sua própria classificação específica com base na superclasse.

  • Um exemplo disso é criar uma subclasse de TwoDShape para encapsular retângulos.

Image description

  • A classe Rectangle é uma subclasse de TwoDShape.

  • Adiciona o método isSquare(), que determina se o retângulo é um quadrado (quando a largura é igual à altura).

  • Adiciona também o método area(), que calcula a área do retângulo.

Top comments (0)