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();
}
}