Junior
Qual é a diferença entre abstração e polimorfismo?
sobes.tech IA
Resposta da IA
A abstração concentra-se em ocultar detalhes de implementação e fornecer uma representação simplificada do objeto. O polimorfismo permite tratar objetos de diferentes classes como objetos de uma classe base ou interface comum, realizando ações específicas para cada objeto.
| Característica | Abstração | Polimorfismo |
|---|---|---|
| Essência | Ocultar detalhes, fornecer uma visão geral | A capacidade de tratar objetos de diferentes tipos de forma uniforme |
| Objetivo | Simplificação, redução de complexidade | Flexibilidade, extensibilidade, universalidade do código |
| Como é alcançado | Classes abstratas, interfaces | Sobrecarga de métodos, sobrescrita de métodos, interfaces |
| Exemplo | Classe Automóvel sem detalhes do motor |
Método mover() em diferentes classes (Carro, Caminhão) |
Exemplo de abstração (uso de abstração):
interface Forma {
// Método abstrato
double calcularArea();
}
class Circulo implements Forma {
private double raio;
public Circulo(double raio) {
this.raio = raio;
}
@Override
public double calcularArea() {
// Detalhes de implementação estão ocultos atrás do método da interface
return Math.PI * raio * raio;
}
}
Exemplo de polimorfismo:
// Uso do polimorfismo
Forma minhaForma = new Circulo(5);
// Chamada do método calcularArea() através da referência do tipo base (interface Forma)
// Na prática, será executado o método calcularArea() da classe Circulo
double area = minhaForma.calcularArea();
System.out.println("Área: " + area);