2
respostas

implements CLASS, como isso funciona? (deveria ?)

Eu não entendi o porque isso isso funciona, até hoje eu aprendi que interfaces são contratos, (funções abstratas) implementadas por classes, eu nunca tentei "implementar" uma classe em outra... mas eu queria entender o porque isso é possível (se realmente é possível ou é uma gambiarra?) ?

class MockContatacDao extends Mocks implements ContatacDao
2 respostas

Bom dia Pablo, não sei se entendi sua pergunta mas vamos lá!

Como é possível implementar uma classe na outra?

Bom, vamos entender a diferença entre extend e implement

  • Extend

    É como se fosse uma herança, a classe recebe todas as variáveis, funções,propriedades da classe extendida.

  • Implement

    É como se fosse uma cópia ( famoso meme: copia mas não faz igual), onde a classe recebe todas as funções, mas apenas elas.

No caso do MOCK, usamos o extends para fazer com que o MockContactDao seja como um filho direto do Mock ( todas as funções e parametros são as mesmas) e em seguida usamos o implements para copiar as funções do ContactDao e fazer parecer que estamos usando ele normalmente ( mas só estamos fingindo)

Espero que tenha ficado claro c:

ContactDao não deveria ser uma abstract class nesse caso? Já que ele pode ser "implementado"

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software