public class Main {
static void main(String[] args) {
Notificacao email = new Email("Weid","é isso ai q ta escrito no corpo","Agora aqui é um assunto aleatório","Exemplo de polimorfismo e herança");
Notificacao sms = new Sms("Weid ","Fatura paga com sucesso, agr vc ta sem dinheiro cara, F");
Notificacao push = new Push("Weid","Novidade","Você tem uma mensagem não lida");
email.enviar();
sms.enviar();
push.enviar();
}
}
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 abstract void enviar();
}
public class Email extends Notificacao {
private String assunto;
private String corpo;
public Email(String destinatario, String mensagem, String assunto, String corpo) {
super(destinatario, mensagem);
this.assunto = assunto;
this.corpo = corpo;
}
@Override
public void enviar() {
System.out.println("Enviando email para : " + getDestinatario());
System.out.println("Assunto : " + assunto);
System.out.println("Corpo : " + getMensagem());
System.out.println("\n");
}
}
public class Sms extends Notificacao {
public Sms(String destinatario, String mensagem) {
super(destinatario, mensagem);
}
@Override
public void enviar() {
System.out.println("Enviando SMS para : " + getDestinatario());
System.out.println("Mensagem : " + getMensagem());
System.out.println("\n");
}
}
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 : " + getDestinatario());
System.out.println("Titulo : " + titulo);
System.out.println("Conteudo : " + getMensagem());
}
}