- Autor
- Nome
- Nelson Silva
- Social
Introdução
Enquanto a primeira introdução à herança em Java ajuda-nos a compreender os seus conceitos fundamentais, neste artigo vamos aprofundar-nos em tópicos mais avançados como a sobreposição de métodos e a abstração.
Sobreposição de Métodos
Quando uma subclasse herda de uma superclasse, ela também herda os seus métodos. No entanto, em muitos casos, queremos que a subclasse tenha uma implementação diferente para um ou mais desses métodos. Isso é conseguido através da sobreposição de métodos, usando a anotação @Override
.
Vantagens da Sobreposição de Métodos:
- Flexibilidade: Permite que subclasse forneça uma implementação específica de um método que já é fornecido pela sua superclasse.
- Reutilização de Código: Mesmo herdando um método de uma superclasse, podemos ajustá-lo às necessidades específicas da subclasse.
- Melhoria na Legibilidade: Ao usar a anotação
@Override
, sinalizamos claramente que o método está sendo sobreposto, tornando o código mais compreensível.
package com.caffeinealgorithm.programaremjava;
public class MaisSobreAHeranca {
public void Run() {
var pessoa = new Filho();
pessoa.informacao();
pessoa.comidaPreferida();
/*
Nome: Nelson Silva
Idade: 28
A minha comida preferida é lasanha.
*/
}
}
class Pai {
protected String ultimoNome = "Silva";
public void comidaPreferida() {
System.out.println("A minha comida preferida é arroz de marisco.");
}
}
class Filho extends Pai {
private String primeiroNome = "Nelson";
private int idade = 28;
public void informacao() {
System.out.printf("Nome: %s %s\n", primeiroNome, ultimoNome);
System.out.printf("Idade: %d\n", idade);
}
@Override
public void comidaPreferida() {
System.out.println("A minha comida preferida é lasanha.");
}
}
Abstração e Métodos Abstratos
Mencionou-se brevemente sobre o termo "abstract". Este é um conceito importante em Java, permitindo criar classes e métodos que não podem ser instanciados. São, essencialmente, modelos que outras classes devem seguir.
- Classes Abstratas: Não podem ser instanciadas diretamente. Servem como uma base para outras classes.
- Métodos Abstratos: São declarados na classe abstract mas não têm corpo. As subclasses devem fornecer a implementação destes métodos.
Exploraremos este tópico em detalhe num próximo artigo, garantindo um entendimento completo da abstração e como ela se integra à herança.
Conclusão
A herança, combinada com conceitos como sobreposição de métodos e abstração, faz da programação orientada a objetos uma ferramenta poderosa para criar software modular e reutilizável. Estes são apenas alguns dos conceitos avançados em Java, e continuar a explorá-los irá aprofundar ainda mais os seus conhecimentos.