5
respostas

duvidas sobre interface x class abstract

Quando usar uma interface ou uma class abstract?

5 respostas

Oi Brunca, em geral vc vai querer uma classe abstrata quando tiver comportamentos que podem ser reaproveitados pelas classes filhas... Já a interface vc vai utilizar quando cair na situação onde vc não tem nenhum comportamento que possa ser reaproveitado, vc quer definir apenas o contrato que todo mundo deve seguir.

Bruna, também é importante observar que podemos fazer tudo com uma interface. Claro, você não ganha o comportamento da classe mãe, mas há recursos que substituem isso, como a delegaçao do código (e delegates em c#, apesar de não ser minha área).

Com o tempo você vai ver que quem estuda muito orientação a objetos tem predileção pelas interfaces. As classes abstratas acabam "amarrando" muito a mãe com a filha, por causa da herança.

Então quando tenho um código 'comportamento' que pode ser utilizado pelas suas filha uso abstratas? caso contrario utilizo interfaces quado as class utilizarem um mesmo contrato.

exatamente, e os mais puristas vao falar que, mesmo tenho comportamento identico em duas filhas, o melhor seria criar uma classe a parte e delegar esse comportamento e manter o uso de interfaces.

Vale ressaltar também que uma interface não pode ter atributos.

Então, além de comportamentos já definidos, se você tiver algum atributo que deve ser compartilhado entre as classes concretas, a classe abstrata vai de suprir melhor.