Olá!
Segue a minha resolução.
- Classe abstrata Notificação:
package br.com.alura.exercicios;
public abstract class Notificacao {
protected String cliente;
public String mensagem;
public Notificacao(String mensagem) {
this.mensagem = mensagem;
}
public abstract void enviarNotificacao();
}
- Classes Email, SMS e NotificacaoPush:
package br.com.alura.exercicios;
public class Email extends Notificacao{
private String assunto;
private String email;
public Email( String email, String assunto, String mensagem) {
super(mensagem);
this.assunto = assunto;
this.email = email;
}
@Override
public void enviarNotificacao() {
System.out.printf("Enviando e-mail para %s" +
"\nAssunto: %s" +
"\nMensagem: %s", email, assunto, mensagem);
}
}
package br.com.alura.exercicios;
public class SMS extends Notificacao{
private String celular;
public SMS(String celular, String mensagem) {
super(mensagem);
this.celular = celular;
}
@Override
public void enviarNotificacao() {
System.out.printf("\n\nEnviando sms para: %s" +
"\nMensagem: %s", celular, mensagem);
}
}
package br.com.alura.exercicios;
public class NotificacaoPush extends Notificacao {
String titulo;
String usuario;
public NotificacaoPush( String usuario, String titulo, String mensagem) {
super(mensagem);
this.titulo = titulo;
this.usuario = usuario;
}
@Override
public void enviarNotificacao() {
System.out.printf("\n\nEnviando notificação para: %s" +
"\nTitulo: %s" +
"\nMensagem: %s", usuario, titulo, mensagem);
}
}
- Man para rodar a aplicação:
package br.com.alura.exercicios;
public class Main {
public static void main(String[] args) {
Notificacao email = new Email("victormoreira@email.com", "Ofertas imperdíveis","Não perca nossas ofertas!");
Notificacao sms = new SMS("(11)98765-4321", "A sua fatura chegou!");
Notificacao push = new NotificacaoPush("usuario_app", "A sua fatura fechou!", "Pague a sua fatura com desconto hoje!");
email.enviarNotificacao();
sms.enviarNotificacao();
push.enviarNotificacao();
}
}