Uma classe abstrata pode conter métodos completos ou incompletos. Uma Interface pode conter apenas a assinatura de um método, mas nenhum corpo ou implementação. Portanto, em uma classe abstrata, pode-se implementar métodos, mas em uma Interface não. Uma classe abstrata pode conter campos, construtores, ou destrutores e aplicar propriedades. Uma interface não pode conter campos, construtores, ou destrutores; pode possuir apenas a propriedade da assinatura, mas não a implementação. Uma classe abstrata não suporta múltiplas heranças, mas uma interface pode suportar múltiplas heranças, assim uma classe pode herdar várias interfaces , mas apenas uma classe abstrata e uma classe que implementa uma interface tem de obrigatoriamente implementar todos os métodos da interface , mas o mesmo não é exigido no caso de uma classe abstrata, que são mais rápidas que as interfaces . Então, quando devo utiliza...
Pesquisar, compartilhar, aprender e ensinar.