Tableaux de comparaison
Base de comparaison | Étend | Met en oeuvre |
---|---|---|
De base | Le mot-clé extend permet de créer une sous-classe à l'aide des fonctionnalités d'une super classe. | Le mot-clé implements est utilisé pour l'implémentation d'une interface |
Les méthodes | Le mot-clé extend ne peut pas écraser toutes les méthodes d'une super classe. | Le mot-clé implémente doit implémenter toutes les méthodes d'une interface implémentée. |
Classe | Une classe ne peut étendre qu'une seule super classe. | Une classe peut implémenter plusieurs interafaces. |
Interface | Une interface peut s'étendre sur plusieurs interfaces. | Une interface ne peut pas implémenter une autre interface. |
Définition du mot-clé extend
L'héritage étant un concept important dans la programmation orientée objet, il est atteint lorsqu'une sous-classe étend une autre super-classe. Une sous-classe est autorisée à étendre une seule super-classe. Une classe ne peut jamais étendre plus d'une super classe en Java. Lorsqu'une classe étend une autre classe, elle peut écraser les méthodes définies dans une superclasse. Laissez-nous comprendre le mot-clé s'étend à l'aide d'un exemple.
classe A {String s; A (String s1) {s = s1; } // chaîne d'affichage void display () {System.out.println (+ s); }} la classe B étend A {String i; B (chaîne s1, chaîne i1) {super (s1); i = i1; } void dispaly () {super.dispaly (); / * display () de classe A invoqué. * / System.out.println (+ i); }} class Override {public static void main (String args []) {B ob = new B (Tech, Différences); ob.display (); / * affichage de la classe B invoqué * /}} / * out put * / Tech Differences
Dans le code ci-dessus, vous pouvez constater que la classe B a étendu la classe A et a remplacé la méthode display () définie dans la classe A. De la même manière, une interface peut étendre plusieurs interfaces à la fois. Comme l'interface ne doit implémenter aucune méthode de l'interface étendue, il est autorisé à hériter de plusieurs interfaces à la fois.
Définition du mot clé implements
En utilisant le mot-clé implements, une classe hérite de toutes les méthodes d'une interface. Lorsqu'une classe implémente une interface, cette classe doit implémenter toutes les méthodes d'interface implémentée. Une interface ne peut jamais implémenter une autre interface, car le mot-clé implémenté promet l'implémentation des méthodes, mais une interface n'y implémente jamais. Il est donc impossible pour une interface d'implémenter une autre interface. Laissez-nous comprendre implements mot-clé à l'aide d'un exemple.
chaînes d'interface {void display (String s); } interface entier {void show (int i); } La classe Demo implémente des chaînes, un entier {void show (int i) {System.Out.Println ("integer value:" + i); } void display (String s) {System.Out.Println ("valeur de chaîne:" + s); }} class Demo_main {public static void main (string args []) {Demo d = new Demo (); d.display ("TechDifferences"); d.show (2); }} / * output * / TechDifferences 2
Comme dans le code ci-dessus, vous pouvez voir que la classe demo implémente deux chaînes d'interface et un entier et a implémenté les méthodes déclarées dans les deux interfaces display () et show ().
Principales différences entre les extensions et les implémentations
- Une classe peut hériter d'une autre classe ou une interface hériter d'autres interfaces à l'aide d'un mot clé expand alors qu'une classe peut implémenter une interface à l'aide d'un mot clé implémenté.
- Une sous-classe qui étend une superclasse peut ou non remplacer toutes les méthodes d'une superclasse. D'autre part, une classe implémentant une interface doit définir / implémenter toutes les méthodes de cette interface.
- Une classe peut implémenter n'importe quel numéro d'une interface en même temps. D'autre part, une classe ne peut étendre qu'une seule super classe.
- Une interface peut étendre un nombre illimité d'interfaces, mais une interface ne peut jamais implémenter une autre interface car les moyens d'implémentation définissant les méthodes, et l'interface a toujours des méthodes abstraites, de sorte qu'une interface ne peut jamais implémenter une autre interface.
Conclusion:
Je conclus la discussion en disant que l'implémentation d'une interface rend le code plus flexible que l'extension d'une classe. Comme cela évite la restriction d'hériter d'une seule super classe en Java. En utilisant le mot-clé implements, une classe peut hériter des fonctionnalités de plusieurs interfaces.