Explicação:
Uma classe abstrata possui um método final e executa métodos abstratos que serão implementados nas classes filhas.
Exemplo:
Realizando a compra de um pacote turístico, você possui a execução de um roteiro, no qual será ir para algum lugar, passear neste lugar e voltar para o seu ponto de partida.
A execução do roteiro é a mesma, "ir" "passear" voltar, o que muda é qual o seu meio de transporte para que você possa ir e voltar e aonde você irá passear. A execução do algoritmo que não muda fica definida em um template, que irá chamar os métodos que serão definidos nas classes filhas.
public abstract class Viagem { public final void viajar() { ir(); passear(); voltar(); } public abstract void ir(); public abstract void voltar(); public abstract void passear(); } class PacoteA extends Viagem { public void ir() { System.out.println("Ir de avião"); } public void voltar() { System.out.println("Voltar de avião"); } public void passear() { System.out.println("Passear em São Paulo"); } } class PacoteB extends Viagem { public void ir() { System.out.println("Ir de ônibus"); } public void voltar() { System.out.println("Voltar de ônibus"); } public void passear() { System.out.println("Passear no Rio de Janeiro"); } } class PacoteC extends Viagem { public void ir() { System.out.println("Ir de ônibus"); } public void voltar() { System.out.println("Voltar de ônibus"); } public void passear() { System.out.println("Passear na Bahia"); } }
Percebam que é um algoritmo bem simples.
Obrigado.
Nenhum comentário:
Postar um comentário