1
resposta

[Projeto] Sistema de notificação

public abstract class Notificacao {
    protected String destinatario;
    protected String mensagem;

    public Notificacao(String destinatario, String mensagem) {
        this.destinatario = destinatario;
        this.mensagem = mensagem;
    }

    public String getDestinatario() {
        return destinatario;
    }

    public String getMensagem() {
        return mensagem;
    }

    public abstract void enviar();
}
public class Email extends Notificacao{
    private String assunto;

    public Email(String destinatario, String mensagem, String assunto) {
        super(destinatario, mensagem);
        this.assunto = assunto;
    }

    public void enviar() {
        System.out.printf("\nEnviando Email para: %s" +
                "\nAssunto: %s" +
                "\nCorpo: %s", destinatario, assunto, mensagem);
    }
}
public class Sms extends Notificacao{


    public Sms(String destinatario, String mensagem) {
        super(destinatario, mensagem);
    }

    public void enviar() {
        System.out.printf("\nEnviando SMS para: %s\nMensagem: %s", destinatario, mensagem);
    }
}
public class Push extends Notificacao{
    private String titulo;

    public Push(String destinatario, String mensagem, String titulo) {
        super(destinatario, mensagem);
        this.titulo = titulo;
    }

    public void enviar() {
        System.out.printf("\nEnviando Push para: %s\nTítulo: %s\nConteúdo: %s", destinatario, titulo, mensagem);
    }
}
public class Principal {
    public static void main(String[] args){
        Notificacao email = new Email(
                "cliente@exemplo.com",
                "Aproveite nossos descontos esta semana.",
                "Promoção especial!");

        Notificacao sms = new Sms(
                "(11) 98765-4321",
                "Sua fatura foi paga com sucesso.");

        Notificacao push = new Push(
                "usuario_app",
                "Você tem uma nova mensagem não lida.",
                "Novidade!");

        email.enviar();
        sms.enviar();
        push.enviar();
    }
}
1 resposta

Olá, Enzo, como vai?

Seu código implementa corretamente os conceitos de herança e polimorfismo solicitados na atividade. A utilização de uma classe abstrata para servir de base às diferentes formas de envio foi uma escolha excelente, pois garante que todas as subclasses mantenham o contrato de possuir o método de envio.

Parabéns pelo empenho e por compartilhar sua solução com a comunidade.

Continue praticando e postando seus avanços por aqui.

O fórum segue à disposição.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!