Classe Program:
List<INotificacao> notificacoes = new()
{
new EmailNotificacao(),
new SmsNotificacao(),
new PushNotificacao()
};
foreach (var notificacao in notificacoes)
{
notificacao.EnviarMensagem("Sistema fora do ar!");
}
Interface INotificacao:
namespace Polimorfismo.NotificacoesDeSistema;
internal interface INotificacao
{
public void EnviarMensagem(string mensagem);
}
Classe EmailNotificacao:
namespace Polimorfismo.NotificacoesDeSistema;
internal class EmailNotificacao : INotificacao
{
public void EnviarMensagem(string mensagem)
{
Console.WriteLine($"Enviando E-MAIL: {mensagem}");
}
}
Classe SmsNotificacao:
namespace Polimorfismo.NotificacoesDeSistema;
internal class SmsNotificacao : INotificacao
{
public void EnviarMensagem(string mensagem)
{
Console.WriteLine($"Enviando SMS: {mensagem}");
}
}
Classe PushNotificacao:
namespace Polimorfismo.NotificacoesDeSistema;
internal class PushNotificacao : INotificacao
{
public void EnviarMensagem(string mensagem)
{
Console.WriteLine($"Enviando PUSH: {mensagem}");
}
}