Récemment, j'ai assisté à une entrevue de MNC.
J'ai été invité à expliquer les Différences entre une Interface et une classe Abstraite.
C'est une question que j'ai préparé avant l'entrevue.
Je lui ai dit:
Principale différence est que les méthodes d'une interface Java sont implicitement abstrait et ne peut pas avoir des implémentations. Une classe abstraite Java peut avoir les méthodes d'instance qui implémente un comportement par défaut.
Les Variables déclarées dans une interface Java est par défaut final. Un classe abstraite peut contenir des non-final variables.
Les membres d'une interface Java sont publics par défaut. Java abstrait classe peut avoir l'habitude des saveurs de membres de la classe comme privé, la protection, etc..
Java de l'interface doit être implémentée à l'aide du mot clé "met en œuvre"; Java classe abstraite doit être étendu à l'aide du mot clé "extends".
Une interface peut étendre une autre interface Java seulement, une classe abstraite peut étendre une autre classe Java et d'implémenter plusieurs interfaces Java.
Une classe Java peut implémenter plusieurs interfaces, mais il peut s'étendre qu' une classe abstraite.
Mais le truc, c'est après avoir décrit ces différences, il n'était pas satisfait.
Il m'a dit que ces différences représenté livre de la connaissance.
Il m'a demandé qui quand dois-je choisir une classe abstraite via une interface et de donner quelques exemples pratiques.
je veux aussi savoir que là Où j'ai fait de mal?