Interfaces E Classes Abstratas

Posted on Mar 28, 2025

Interfaces

As interfaces são um “contrato” para as classes seguirem, por exemplo:

interface IVeiculo
{
	public string Tipo {get; set;}
	int Potencia {get; set;}
}
class Carro : IVeiculo
{
	public string Tipo {get; set;}
	public int Potencia {get; set;}
}
class Moto : IVeiculo
{
	public string Tipo {get; set;}
	public int Potencia {get; set;}
}
    }

Neste exemplo, a interface “obriga” as classes que a herdam a terem suas propriedades e métodos.

Classes Abstratas

Já as classes abstratas, são as classes criadas que server para outras classes herdarem, mas não sendo necessariamente um contrato, mas sim um conceito abstrato que não pode ser instanciada.

public abstract class Veiculo
{
	public string Tipo {get; set;}
	int Potencia {get; set;}
}
class Carro : Veiculo
{
	public string Tipo {get; set;}
	public int Potencia {get; set;}
}
class Moto : Veiculo
{
	public string Tipo {get; set;}
	public int Potencia {get; set;}
}

Aqui, podemos notar que não faz sentido instanciarmos Veiculo, pois o que é um veiculo? logo, ele precisa ser um carro ou uma moto(exemplo), mas não só um veiculo. A keyword ‘abstract’ impede o instanciamento.