<< Click to Display Table of Contents >> POO |
![]() ![]() ![]() |
Diagrama
Classes.cs
using System;
namespace Animais
{
public abstract class Animal { public string GetNome() { return this.ToString().Split('.')[1]; } }
public interface IVoador { void Voar(); }
public abstract class AvePlanadora : Animal, IVoador
{
public void Voar()
{
Console.WriteLine(GetNome() + " plana sobre os ventos");
}
}
public abstract class VoadorParado : Animal, IVoador
{
public void Voar()
{
Console.WriteLine(GetNome() + " voa parada sobre a flor");
}
}
public abstract class AveNormal : Animal, IVoador
{
public void Voar()
{
Console.WriteLine(GetNome() + " bate asas e voa normalmente");
}
}
public class Aviao: IVoador
{
public void Voar()
{
Console.WriteLine(ToString().Split('.')[1] + " voa usando turbinas");
}
}
public class Condor : AvePlanadora { }
public class Gaivota : AvePlanadora { }
public class Beijaflor : VoadorParado { }
public class Mosca : VoadorParado { }
public class Pombo : AveNormal { }
public class Pardal : AveNormal { }
}
Program.cs
using System;
using System.Collections.Generic;
namespace Animais
{
static class Program
{
static void Main()
{
List<IVoador> voadores = new List<IVoador>();
voadores.Add(new Condor());
voadores.Add(new Gaivota());
voadores.Add(new Mosca());
voadores.Add(new Beijaflor());
voadores.Add(new Pombo());
voadores.Add(new Pardal());
voadores.Add(new Aviao());
foreach (IVoador voador in voadores)
voador.Voar();
}
}
}
Saída
Condor plana sobre os ventos
Gaivota plana sobre os ventos
Mosca voa parada sobre a flor
Beijaflor voa parada sobre a flor
Pombo bate asas e voa normalmente
Pardal bate asas e voa normalmente
Aviao voa usando turbinas