static void Main(string[] args)
TipoCombustivel combustivel = new Gasolina();
Carro polo = new Carro();
polo.Abastecer(40, combustivel);
private TanqueCombustivel tanque = new TanqueCombustivel();
public void Abastecer(decimal valor)
int litros = Convert.ToInt16(valor / vlrLitro);
public void Abastecer(int quantidade)
Abastecer(quantidade, new Gasolina());
public void Abastecer(int quantidade, TipoCombustivel combustivel)
int capacidadeDisponivel = tanque.Capacidade - tanque.Nivel;
if(capacidadeDisponivel >= quantidade)
tanque.Nivel += quantidade;
tanque.combustivelAtual = combustivel;
Console.WriteLine($"Abastecendo {quantidade} com {combustivel}");
public TipoCombustivel combustivelAtual {get; set;}
public int Nivel {get; set;}
public int Capacidade {get; set;} = 100;
public class TipoCombustivel{ }
public class Gasolina : TipoCombustivel {}
public class Alcool : TipoCombustivel {}