Baixe o material de estudo
Fala, meus consagrados! Beleza?
A herança significa que uma classe é outra e é o mecanismo pelo qual uma classe, chamada de subclasse ou classe derivada, pode herdar propriedades (atributos) e comportamentos (métodos) de outra classe, conhecida como superclasse ou classe base. Isso significa que a subclasse incorpora todas as características da superclasse e pode adicionar novas características ou modificar as existentes.

A principal ideia por trás da herança é criar uma relação de “é um” entre as classes. Por exemplo, se tivermos uma classe Animal, podemos ter subclasses como Cachorro e Gato, pois ambos são tipos de animais e compartilham características comuns.
Outros exemplos:
- Superclasse Pessoa:
- Subclasse Aluno;
- Subclasse Professor;
- Superclasse Conta Corrente:
- Subclasse Conta Poupança;
- Subclasse Conta Movimento.

Há dois tipos de herança:
- Herança simples:
- Cada classe pode herdar de apenas uma superclasse;
- Isso simplifica o modelo de herança e é suportado pela maioria das linguagens orientadas a objetos, como Java e C#; e
- Herança múltipla:
- Uma classe pode herdar de mais de uma superclasse ao mesmo tempo;
- Isso pode introduzir complexidades adicionais, como o problema do diamante, onde uma classe herda o mesmo método de duas superclasses;
- Algumas linguagens, como Python, suportam herança múltipla, enquanto outras (como Java) oferecem interfaces como alternativa a esse tipo de herança.
Na linguagem Java, não há suporte à herança múltipla. Cada classe tem uma e apenas uma superclasse direta, exceto a classe Object, que não possui superclasse. Na ausência de qualquer outra superclasse explícita, cada classe é implicitamente uma subclasse de Object. Todas as classes na linguagem Java são descendentes de Object.
Uma classe em Java pode herdar de apenas uma superclasse. Para contornar essa limitação, utilizamos interfaces, que permitem que uma classe implemente múltiplas abstrações.
Quando uma classe é subclasse de outra, usa-se a palavra-chave extends seguido do nome da superclasse a ser estendida.
Exemplo de superclasse Animal:
public class Animal {
private String nome;
public Animal(String nome) {
this.nome = nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getNome() {
return nome;
}
public void emitirSom() {
System.out.println("Som do animal");
}
}
Exemplo de subclasse Cachorro:
public class Cachorro extends Animal {
public Cachorro(String nome) {
super(nome);
}
@Override
public void emitirSom() {
System.out.println("Latindo...");
}
public void cavarBuraco() {
System.out.println(getNome() + " cavando buraco");
}
}
Aqui, a classe Cachorro herda de Animal, podendo acessar seus métodos e atributos. Além disso, ela pode sobrescrever (override) métodos para fornecer uma implementação específica.
A sobrescrita de métodos permite que a subclasse forneça sua própria implementação de um método da superclasse. Isso é feito utilizando a anotação @Override, garantindo que a assinatura do método seja correta.
Exemplo usando a superclasse e subclasse:
public class Main {
public static void main(String[] args) {
Cachorro rex = new Cachorro("Rex");
System.out.println("Nome: " + rex.getNome());
rex.emitirSom();
rex.setNome("Max");
System.out.println("Nome: " + rex.getNome());
rex.cavarBuraco();
rex.emitirSom();
}
}
Resultado da execução do código:
Nome: Rex
Latindo...
Nome: Max
Max cavando buraco
Latindo...
A herança deve ser usada com cuidado. Embora seja uma técnica poderosa, o uso excessivo pode levar a código difícil de manter e entender. Em muitos casos, a composição é uma alternativa melhor do que a herança direta.
Espero que tenham gostado!
Forte abraço e até a próxima jornada!
Quer ficar por dentro dos concursos públicos abertos e previstos pelo Brasil? Clique nos links abaixo:
CONCURSOS 2025
CONCURSOS ABERTOS
QUESTÕES DE CONCURSOS
Receba gratuitamente no seu celular as principais notícias do mundo dos concursos. Clique no link abaixo e inscreva-se:
TELEGRAM
Fonte: Gran Cursos Online