1
resposta

[Projeto] Desafio resolvido

package com.github.aldenyjr.exercicios.sistema_de_notificacao;

public abstract class Notificacao {
    private String destinatario;
    private 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 void enviar(){};
}

package com.github.aldenyjr.exercicios.sistema_de_notificacao;

public class Email extends Notificacao{
    private String assunto;

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

    @Override
    public void enviar() {
        System.out.println("""
                Enviando email para: %s
                Assunto: %s
                Corpo: %s
                """.formatted(super.getDestinatario(), this.assunto, this.getMensagem()));
    }
}

package com.github.aldenyjr.exercicios.sistema_de_notificacao;

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

    @Override
    public void enviar() {
        System.out.println("""
                Enviando SMS para: %s
                Mensagem: %s
                """.formatted(super.getDestinatario(), this.getMensagem()));
    }
}

package com.github.aldenyjr.exercicios.sistema_de_notificacao;

public class Push extends Notificacao{
    private String titulo;

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

    @Override
    public void enviar() {
        System.out.println("""
                Enviando Push para: %s
                Titulo: %s
                Conteudo: %s
                """.formatted(super.getDestinatario(), this.titulo, this.getMensagem()));
    }
}
package com.github.aldenyjr.exercicios.sistema_de_notificacao;

public class SistemaDeNotificacao {
    public static void main(String[] args) {
        var email = new Email("aldenyjr.dev@gmail.com", "Mensagem de envio de email teste", "Olá mundo");
        var sms = new Sms("(71) 98888-8888", "Olá mundo, testando envio de mensagem por SMS");
        var push = new Push("usuario_app", "Você tem uma nova mensagem não lida.", "Novidade");

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

Resultado:

Enviando email para: aldenyjr.dev@gmail.com
Assunto: Olá mundo
Corpo: Mensagem de envio de email teste

Enviando SMS para: (71) 98888-8888
Mensagem: Olá mundo, testando envio de mensagem por SMS

Enviando Push para: usuario_app
Titulo: Novidade
Conteudo: Você tem uma nova mensagem não lida.
1 resposta

Oi, Aldeny! Como vai?

Gostei bastante da forma como você estruturou a herança e aplicou o polimorfismo com o método enviar(). A separação das responsabilidades entre Email, Sms e Push ficou clara e organizada, além do uso de abstract class ter sido bem aplicado para padronizar o comportamento.

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

:contentReference[oaicite:0]{index=0}