Uma visão geral sobre conceitos fundamentais de Orientação a Objetos em Java, como herança, polimorfismo, sobrescrita de métodos, e o uso de interfaces tratados ao longo do curso disponibilizado pela Alura.
A herança permite que uma classe (subclasse) herde atributos e métodos de outra classe (superclasse). Isso ajuda a evitar duplicação de código e facilita a manutenção.
public class Titulo {
private String nome;
private int anoDeLancamento;
}
public class Filme extends Titulo {
private String diretor;
}
public class Serie extends Titulo {
private int temporadas;
private boolean ativa;
}
O polimorfismo permite que um método tenha comportamentos diferentes com base no objeto que o invoca. Isso torna o código mais flexível e escalável.
public void inclui(Titulo titulo) {
System.out.println("Adicionando duração em minutos de " + titulo);
this.tempoTotal += titulo.getDuracaoEmMinutos();
}
A sobrescrita de métodos permite que uma subclasse forneça uma implementação específica de um método que é definido na superclasse.
public class Serie extends Titulo {
@Override
public int getDuracaoEmMinutos() {
return temporadas * episodiosPorTemporada * minutosPorEpisodio;
}
}
Interfaces definem "contratos" que classes podem implementar. Elas são usadas para especificar métodos que devem ser implementados, sem definir a implementação.
public interface Classificavel {
int getClassificacao();
}
public class Filme extends Titulo implements Classificavel {
@Override
public int getClassificacao() {
return 0;
}
}
O encapsulamento é a prática de esconder a implementação interna de uma classe e expor apenas o que é necessário através de métodos públicos.