Conception par Objet et Programmation Java

1/11
100%

<!-- Slide number: 1 -->

Conception par Objet et Programmation Java

1

![](Picture6.jpg)

Chapitre 7 : Les classes abstraites et les Interfaces

Equipe Java

2019-2020

![](Image15.jpg)

Notes:

<!-- Slide number: 2 -->

Plan

2

Introduction

Classe et objet

Encapsulation

Héritage

Polymorphisme

Exceptions

Connexion Base de donnée

Publicité

Interfaces

Lambda Expression

Collections

Stream

Notes:

<!-- Slide number: 3 -->

Objectifs

3

Introduire la notion de classe abstraite

Introduire le concept d’interfaces

Déclaration d’une interface.

Notes:

<!-- Slide number: 4 -->

Les classes abstraites

4

Définition:

Une classe abstraite est une classe qui ne permet pas d’instancier des objets, elle ne peut servir que de classe de base pour une dérivation.

Dans une classe abstraite, on peut trouver classiquement des méthodes et des champs, dont héritera toute classe dérivée et on peut trouver des méthodes dites « abstraites » qui fournissent uniquement la signature et le type de retour.

<!-- Slide number: 5 -->

Publicité

Les classes abstraites

5

Syntaxe:

abstract class A

{

public void foo() {……} //foo est définie dans A

public abstract void bar (int n) ; //bar est une méthode abstraite elle n’est pas définie dans A

}

A a ; //on peut déclarer une référence sur un objet de type A ou dérivé

a = new A (….) ; //Erreur pas d’instanciation d’objets d’une classe abstraite.

Utilisation

<!-- Slide number: 6 -->

Les classes abstraites

6

Si on dérive une classe B de A qui définit les méthodes abstraites de A, alors on peut : a = new B(…) ; //Juste car B n’est pas une classe abstraite

Règles

Dès qu’une classe abstraite comporte une ou pusieurs méthodes abstraites, elle est abstraite, et ce même si l’on n’indique pas le mot clé « abstract » devant sa déclaration.

Une méthode abstraite doit être obligatoirement déclarée « public », ce qui est logique puisque sa vacation est d’être redéfinie dans une classe dérivée.

<!-- Slide number: 7 -->

Publicité

Les classes abstraites

7

Une classe dérivée d’une classe abstraite n’est pas obligée de redéfinir toutes les méthodes abstraites, elle peut ne redéfinir aucune, mais elle reste abstraite tant qu’il y a encore des méthodes abstraites non implémentées.

Une classe dérivée d’une classe non abstraite peut être déclarée abstraite.

<!-- Slide number: 8 -->

Les classes abstraites

8

Intérêts :

Le recours aux classes abstraites facilite largement la conception orientée objet. On peut placer dans une classe abstraite toutes les fonctionnalités dont on souhaite disposer pour les classes descendantes :

Soit sous la forme d’une implémentation complète de méthodes (non abstraites) et de champs (privés ou non) lorsqu’ils sont communs à tous les descendants.

Soit sous forme d’interface de méthodes abstraites dont on est alors sûr qu’elles existeront dans toute classe dérivée instanciable.

<!-- Slide number: 9 -->

Les Interfaces

9

Jusqu’à la version 7 du JDK, une interface est considérée comme étant une classe abstraite qui n’implantant aucune méthode et aucun champ (sauf les constantes). Elle définit donc les entêtes d’un certain nombre de méthodes, ainsi que des constantes,

A partir de la version 8, une interface peut implémenter une méthode en utilisant le nouveau mot clé "default. Ce changement radicale à comme objectif de satisfaire la programmation fonctionnelles qui sera détaillée dans les chapitres suivants

<!-- Slide number: 10 -->

Les Interfaces

10

Publicité

L’interface est plus riche qu’un simple cas particulier des classes abstraites :

Une classe peut implémenter plusieurs interfaces (alors qu’une classe ne pouvait dériver que d’une seule classe abstraite).

La notion d’interface va se superposer à celle de dérivation, et non s’y substitue.

Les interfaces peuvent se dériver.

Une classe dérivée peut implémenter 1 ou plusieurs interfaces, elle peut même ré-implémenter une interface déjà implémentée par la superclasse.

On pourra utiliser des variables de type interface

<!-- Slide number: 11 -->

Les Interfaces

11

Syntaxe:

public interface I

{

void f (int n) ; //public abstract facultatifs

void g () ; //public abstract facultatifs

}

Toutes les méthodes d’une interface qui possèdent une implémentation sont abstraites. On peut ne pas mentionner le modificateur de visibilité (par défaut public) et le mot clé « abstract »

Conception par Objet et Programmation Java

Programming, Java, Object-Oriented Design · course

Browse all programmation documents

<!-- Slide number: 1 -->

Conception par Objet et Programmation Java

1

![](Picture6.jpg)

Chapitre 7 : Les classes abstraites et les Interfaces

Equipe Java

2019-2020

![](Image15.jpg)

Notes:

<!-- Slide number: 2 -->

Plan

2

Introduction

Classe et objet

Encapsulation

Héritage

Polymorphisme

Exceptions

Connexion Base de donnée

Advertisement

Interfaces

Lambda Expression

Collections

Stream

Notes:

<!-- Slide number: 3 -->

Objectifs

3

Introduire la notion de classe abstraite

Introduire le concept d’interfaces

Déclaration d’une interface.

Notes:

<!-- Slide number: 4 -->

Les classes abstraites

4

Définition:

Une classe abstraite est une classe qui ne permet pas d’instancier des objets, elle ne peut servir que de classe de base pour une dérivation.

Dans une classe abstraite, on peut trouver classiquement des méthodes et des champs, dont héritera toute classe dérivée et on peut trouver des méthodes dites « abstraites » qui fournissent uniquement la signature et le type de retour.

<!-- Slide number: 5 -->

Advertisement

Les classes abstraites

5

Syntaxe:

abstract class A

{

public void foo() {……} //foo est définie dans A

public abstract void bar (int n) ; //bar est une méthode abstraite elle n’est pas définie dans A

}

A a ; //on peut déclarer une référence sur un objet de type A ou dérivé

a = new A (….) ; //Erreur pas d’instanciation d’objets d’une classe abstraite.

Utilisation

<!-- Slide number: 6 -->

Les classes abstraites

6

Si on dérive une classe B de A qui définit les méthodes abstraites de A, alors on peut : a = new B(…) ; //Juste car B n’est pas une classe abstraite

Règles

Dès qu’une classe abstraite comporte une ou pusieurs méthodes abstraites, elle est abstraite, et ce même si l’on n’indique pas le mot clé « abstract » devant sa déclaration.

Une méthode abstraite doit être obligatoirement déclarée « public », ce qui est logique puisque sa vacation est d’être redéfinie dans une classe dérivée.

<!-- Slide number: 7 -->

Advertisement

Les classes abstraites

7

Une classe dérivée d’une classe abstraite n’est pas obligée de redéfinir toutes les méthodes abstraites, elle peut ne redéfinir aucune, mais elle reste abstraite tant qu’il y a encore des méthodes abstraites non implémentées.

Une classe dérivée d’une classe non abstraite peut être déclarée abstraite.

<!-- Slide number: 8 -->

Les classes abstraites

8

Intérêts :

Le recours aux classes abstraites facilite largement la conception orientée objet. On peut placer dans une classe abstraite toutes les fonctionnalités dont on souhaite disposer pour les classes descendantes :

Soit sous la forme d’une implémentation complète de méthodes (non abstraites) et de champs (privés ou non) lorsqu’ils sont communs à tous les descendants.

Soit sous forme d’interface de méthodes abstraites dont on est alors sûr qu’elles existeront dans toute classe dérivée instanciable.

<!-- Slide number: 9 -->

Les Interfaces

9

Jusqu’à la version 7 du JDK, une interface est considérée comme étant une classe abstraite qui n’implantant aucune méthode et aucun champ (sauf les constantes). Elle définit donc les entêtes d’un certain nombre de méthodes, ainsi que des constantes,

A partir de la version 8, une interface peut implémenter une méthode en utilisant le nouveau mot clé "default. Ce changement radicale à comme objectif de satisfaire la programmation fonctionnelles qui sera détaillée dans les chapitres suivants

<!-- Slide number: 10 -->

Les Interfaces

10

Advertisement

L’interface est plus riche qu’un simple cas particulier des classes abstraites :

Une classe peut implémenter plusieurs interfaces (alors qu’une classe ne pouvait dériver que d’une seule classe abstraite).

La notion d’interface va se superposer à celle de dérivation, et non s’y substitue.

Les interfaces peuvent se dériver.

Une classe dérivée peut implémenter 1 ou plusieurs interfaces, elle peut même ré-implémenter une interface déjà implémentée par la superclasse.

On pourra utiliser des variables de type interface

<!-- Slide number: 11 -->

Les Interfaces

11

Syntaxe:

public interface I

{

void f (int n) ; //public abstract facultatifs

void g () ; //public abstract facultatifs

}

Toutes les méthodes d’une interface qui possèdent une implémentation sont abstraites. On peut ne pas mentionner le modificateur de visibilité (par défaut public) et le mot clé « abstract »