Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Classes Abstratas vs Interfaces

Qual a diferenca entre classes abstratas e interfaces? Quando usar uma ou outra?

3 respostas

Classes abstratas podem ter código em seus métodos, e pode haver construtor, e atributos, interfaces podem ter apenas assinaturas dos métodos, e não podem conter atributos, apenas constantes.

Há inúmeras situações para decidir escolher uma ou outra, mas a regra geral é: se você precisar apenas da assinatura do método, use interface, isto é, quando não é nenhum algoritmo em comum entre as classes derivadas, ou seja, se você está usando classe abstrata e não tem a seguinte linha no método sobrescrito, está errado.

    @Override
    public string Request(String url) {
    super(); // essa
    return "anything"
    }

Pois isso significa que tu estás herdando regra que não lhe serves.

Entendi. Hoje eu vejo muito em livros, falando que o prefira usar as interfaces do que as classes abstratas, o que vc acha disso?

solução!

Faz total sentido, pois seu programa fica mais performático, e você tem mais controle sobre os estados dos seus objetos, visto que você não está herdando nada que você não precisa, só a assinatura. Além disso, faz parte da do princípio da desacoplação, pois a classe mãe pode estar dependendo ou herdando de inúmeras outras classes que não faz sentido para uma classe derivada.