Concept d’interface et héritage multiple en Java. Met en oeuvre Exemples et classes Diagrammes. (CU00696B)

Escrito por Alex Rodríguez

Resumen: Entrega nº96 del curso « Aprender programación Java à partir de zéro ».
codage helprapramar.com: CU00696B

Concept de multiples interface et héritage en Java. Implements.

Dans les sections précédentes du tutoriel, nous avons étudié les concepts d’héritage et de polymorphisme. Jusqu’à présent, nous avons considéré des scénarios dans lesquels une classe hérite uniquement d’une autre classe. Serait-il possible d’élever un scénario dans lequel une classe hérite d’une classe (multiple héritage)?

<0b44970916 ">

« Fe06f8da1e »> « FE06F8DA1E »> Heritage multiple Java

Le contour du chiffre précédent représenterait qu’il y aurait des cours comme un professeur qui hériterait de deux classes: professeur et conférencier. Ce serait un cas de multiples héritage et représenterait que la sous-classe partage les caractéristiques des deux superclasses et présente également ses caractéristiques spécifiques. L’héritage multiple, pour la cohérence des programmes et des langues a une complexité relativement élevée. Par conséquent, certaines langues orientées objet le permettent et d’autres non. Java n’autorise pas de multiples héritage, mais en retour, la construction appelée « interface » qui permet une forme de simulation ou une mise en oeuvre limitée de multiples héritage.

nous avons déjà a été discuté du concept d’interface dans l’allusion à la signature des méthodes ou des informations publiques des classes. Nous avons également fait une première approximation à terme interface à Java et, en tant que simile, nous avons dit qu’il pourrait être considéré comme une règle d’urbanisme Dans une ville. Allons à approfondir le concept d’interface dans Java. Une interface est une construction similaire à une classe abstraite en Java, mais avec les différences suivantes:

a) Dans l’en-tête, l’interface de mots-clés est utilisée à la place de la classe de classe ou abstraite. Par exemple, interface publique Nameninterface {…}

B) Chaque méthode est abstraite et le public sans avoir besoin de le déclarer, c’est-à-dire que vous n’avez pas besoin de mettre du public abstrait Que par défaut, toutes les méthodes sont du public abstrait. Par conséquent, une interface en Java ne met pas en œuvre aucune des méthodes qui déclarent: Aucune de vos méthodes n’a un corps.

c) Les interfaces n’ont pas de constructeur.

d) Une interface ne prend en charge que les champs de type « final statique publiques », c’est-à-dire des champs de classe, public et constant. Pas besoin d’inclure les mots final statique publiques car tous Les champs seront traités comme si elles prennent ces mots. N’oubliez pas que Static était équivalent à la « classe » et finale à « constante ». Les interfaces peuvent être un endroit intéressant pour déclarer des constantes qui vont être utilisées par différentes classes de nos programmes.

e) une classe peut dériver d’une interface de la même manière qu’elle peut dériver d’une autre classe. Cependant, on dit que l’interface est mise en œuvre (outils), Il ne s’étend pas (étendre) pour ses sous-classes. Par conséquent, de déclarer l’héritage d’une interface, le mot-clé Implem est utilisé. Ents au lieu d’étendre.

Une classe peut être implémentée une ou plusieurs interfaces en Java (il est indiqué avec des implicationsInterface1, nominface2, … etc.), mais ne peut que prolonger une classe. La mise en œuvre de plusieurs interfaces dans une seule classe est la chose la plus proche que Java a à plusieurs héritage.

Nous pouvons déclarer des variables du type d’interface, mais pour les initialiser, nous allons utiliser une classe spécifique qui l’applique Par exemple, liste < chaîne > millistre; Déclare une variable avec le type de l’interface de liste. Initialisation milliset = nouvelle liste < chaîne > (); Il n’est pas possible car vous ne pouvez pas créer un objet du type défini par une interface. Dans le changement Milista = Nouvelle LinkedList < String > (); sí es válido.

Diremos que una interfaz en Java define un tipo cuyos métodos están todos sin implementar y que resulta equivalente a una herencia múltiple (de clases abstractas) en una classe.Si une classe implémente une interface, il peut arriver:

a) qui implémente les méthodes de l’interface qui les écrasent (il peut s’agir d’une classe spécifique).

b) qui ne mettant pas la mise en œuvre des méthodes de l’interface: il s’agira d’une classe abstraite et doit être effectuée par le mot-clé Résumé sur son en-tête pour l’indiquer.

Considérez un diagramme de classes comme celui-ci , qui pourrait utiliser pour un programme de gestion dans un centre éducatif:

Interface Java

Nous voyons que les interfaces sont identifiées par bluej avec <

< interface

interface

« 0282498dd0″>

> sur la partie supérieure de votre icône. Dans ces classes, les relations sont déterminées par ce code:

Acteur d’interface publique {…}: définit l’acteur acteur appronerapragar.com Interface.

Personne de la classe abstraite publique implémente acteur {…}: Définit la classe abstraite comme implémentation de l’interface de l’acteur.

Le professeur de classe publique étend la personne {…} : Définit la classe d’enseignant comme une extension de la personne de la classe.

L’étudiant de la classe publique étend la personne {…}: définit la classe d’étudiants comme une extension de la classe de la personne.

public interface obooinee {…}: définit l’objet d’interface.

Véorité de la classe publique Action Acteur, Objecteurerte {…}: définit que la classe de véhicule implémente deux interfaces, l’interface de l’acteur et l’interface d’objet, C’est-à-dire qu’un véhicule est à la fois acteur et objointe.

La voiture de classe publique étend le véhicule {…}: définit la classe de voiture comme une extension de la classe de véhicules.

Bicyclette de classe publique extensible Véhicule DS {…}: définit la classe de bicyclettes comme une extension de la classe de véhicule.

<0b44970916 ">

une classe peut hériter d’un autre et implémentez une ou plusieurs interfaces. Dans ce cas, en premier lieu, la relation d’héritage est placée sur la superclasse, puis les interfaces qui implémentent. Par exemple, dans ce schéma:

Interface Java

La définition de la classe d’arbres serait comme ceci: l’arbre de classe publique prolonge des outils de légumes acteurs {…}. La classe hérite d’acteur de légumes et implémente.

Comment savoir si une classe est un candidat à définir comme une interface?

a) Si nous avons besoin de la méthode avec le corps, nous savons déjà qu’il ne s’agira pas d’une interface car toutes les méthodes d’une interface doivent être abstraites.

b) si nous avons besoin d’une classe » héritée « de plusieurs superclasses, ces superclasses sont des candidats à être des interfaces.

c) dans certains cas, il est tout aussi viable définissant une classe comme une interface que comme une classe abstraite, mais placée dans cette situation préférera opter pour une interface car elle est plus flexible et extensible: cela nous permettra de mettre en œuvre plusieurs interfaces (nous en profitons de l’héritage multiple des interfaces). Au lieu de cela, une classe ne peut pas hériter de plusieurs classes.

N’oubliez pas que le champ S déclarés sont des champs statiques même s’il n’est pas spécifiquement indiqué:

<3AABA93DE6 ">

Acteur d’interface publique {

int actif = 1;

int inactif = 0;

// … reste de l’exemple de code d’interface Exemple HellraPragramar.com

}

<

Dans ce cas, actif et inactif se comportent en tant que finale statique publique (constante) pour toutes les classes qui implémentent cette interface.

Quel est l’un des principaux intérêts de l’utilisation d’interfaces? Être capable d’utiliser le polymorphisme: par exemple, être capable de rassembler dans un type de collection du type d’interface mais qui sont implémentés dans différents types. Ou pour pouvoir traiter des objets de types différents mais appartiennent au même superype, car ils implémentent une interface.

exercice

répond aux questions suivantes:

a ) Est-ce une classe héritante de deux classes en Java?

b) une interface Java peut avoir des méthodes qui incluent une instruction tandis queUne interface Java peut-elle avoir des méthodes qui incluent une instruction System.out.println?

c) est un objet Java du type défini par une interface? Un objet Java peut-il être au même moment du type défini par une interface et un type défini par une classe qui ne met pas en œuvre l’interface? Un objet Java peut être au même moment du type défini par une interface et le type défini par une classe qui implémente l’interface?

Pour vérifier si vos réponses sont Corrigez que vous pouvez consulter dans les forums helntrapramramar.com.

<4fd48dbca7">

Pour accéder aux informations générales sur ce cours et la liste complète des livraisons click Sur ce lien: voir le cours complet.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *