Pourquoi sont des interfaces privilégiées pour les classes abstraites?

J'ai récemment assisté à une entrevue et ils m'ont posé la question "Pourquoi les Interfaces sont privilégiées sur les classes Abstraites?"

J'ai essayé de donner quelques réponses comme:

  • On ne peut obtenir que l'on Étend les fonctionnalités
  • ils sont 100% Abstrait
  • Mise en œuvre n'est pas codé en dur

Ils m'ont demandé de prendre tout de l'api JDBC que vous utilisez. "Pourquoi sont-ils Interfaces?".

Puis-je obtenir une meilleure solution pour cela?

  • Je suis presque sûr que j'ai vu une question comme ça avant, mais même pas Google peut trouver. Peut-être mon esprit qui me joue des tours encore.
  • Note: j'ai édité le titre pour la grammaire, j'ai quitté le corps, car elle semble être des citations, et peut-être qu'ils ne le dire comme ça.
  • C'est une question piège, car il suppose une position sur le sujet et ne donne aucun contexte dans lequel il "peut" être valide. Je suis d'accord avec devinb sur celui-ci. Ils sont à la fois des outils - utiliser de façon appropriée. Trop de réponses ici de justifier la question...qui peut être acceptable si vous voulez vraiment le travail.
  • Ne te justifie pas la question avec une réponse. Ce n'est pas ce qu'ils sont (bien, devrait être à la recherche pour. Montrer que vous savez de quoi vous parlez, et peuvent faire le travail. Si ils sont en vaut la peine, ils ne sont pas à la recherche d'un perroquet.
  • Voir mon commentaire ci-dessous .. mais à chaque fois que je reçois une réponse comme la tienne, le candidat obtient un glacial "merci pour votre temps". La réponse montre pas la profondeur de la compréhension.
  • De commencer la rédaction de cas de tests ou d'aller le TDD route et vous trouverez que la rédaction de cas de tests est beaucoup plus facile lors de l'utilisation d'interfaces. Il permet de se moquer de tout ce que vous n'avez pas besoin pour votre cas de test.
  • double possible de Interface vs Classe Abstraite (général OO)
  • Double Possible de Quand utiliser une interface au lieu d'une classe abstraite, et vice-versa?

InformationsquelleAutor Techmaddy | 2009-03-12