1
resposta

[Projeto] Sistema de notificação

package Alertas;

public 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;
    }

    void enviar(){};
}
package Alertas;

public class Email extends Notificacao{
    private String assunto;

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

    public String getAssunto() {
        return assunto;
    }

    @Override
    void enviar() {
        System.out.printf("Enviando e-mail para: %s @gmail.com \nAssunto: %s\nCorpo: %s\n", getDestinatario(), getAssunto(), getMensagem());
    }
}
package Alertas;

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

    @Override
    void enviar() {
        System.out.printf("Enviando e-mail para: %s\nCorpo: %s\n", getDestinatario(), getMensagem());
    }
}
package Alertas;

public class Push extends Notificacao{
    private String titulo;

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

    public String getTitulo() {
        return titulo;
    }

    @Override
    void enviar() {
        System.out.printf("Enviando e-mail para: %s_app\nTítulo: %s\nCorpo: %s\n", getDestinatario(), getTitulo(), getMensagem());
    }
}
package Alertas;

public class Main {
    static void main(String[] args) {
        Email email = new Email("biel123", "Cada vez melhorando mais em", "Estudos");
        Sms sms = new Sms("(61) 991372494", "Parabens pela sua inscrição");
        Push push = new Push("Usuario", "Você tem uma nova mensagem não lida." ,"Nova mensagem");

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

Oi, Gabriel! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Curti bastante como você estruturou a herança e o polimorfismo, criando uma classe base Notificacao e especializando com Email, Sms e Push. Isso mostra um bom entendimento de reutilização de código e sobrescrita com @Override. Um detalhe que chama atenção é que todas as classes seguem o mesmo padrão de envio, o que deixa o sistema bem organizado e fácil de expandir.

Uma dica interessante para o futuro é usar classe abstrata para evitar que alguém instancie Notificacao diretamente e obrigar a implementação do método enviar() nas subclasses.


abstract class Notificacao {
    String destinatario;
    String mensagem;

    abstract void enviar();
}

Esse código define uma classe que não pode ser instanciada e obriga todas as classes filhas a implementarem o método enviar, garantindo consistência no sistema.

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