Lors de l'implémentation de l'interface, nous utilisons la syntaxe d'interface pour séparer l'interface de la définition de classe et former un sujet. interface fournit des spécifications d’interface pour les classes.
En héritage, nous introduisons le mécanisme d'héritage afin d'améliorer la réutilisabilité du programme. L'héritage à cette époque était basé sur les classes. L'interface d'interface peut également être héritée pour étendre l'interface d'origine.
Héritage d'interface
L'héritage d'interface (héritage) est très similaire à l'héritage de classe, qui consiste à ajouter de nouveaux prototypes de méthodes d'interface basés sur l'interface héritée. Par exemple, nous utilisons Cup comme interface d'origine :
Copiez le code comme suit :
interface Coupe {
void addWater(int w);
void drinkWater(int w);
}
Sur la base de l'héritage de Cup, nous définissons une nouvelle interface pour les tasses avec échelles, MetricCup
L'interface est la suivante :
Copiez le code comme suit :
l'interface MetricCup étend la Coupe
{
intContenu de l'eau();
}
Nous avons ajouté un nouveau prototype de méthode WaterContent(), qui renvoie un entier (quantité d'eau).
Héritage multiple de l'interface
Dans l'héritage de classe Java, une classe dérivée ne peut avoir qu'une seule classe de base. En d’autres termes, une classe ne peut pas hériter de plusieurs classes à la fois. En Java, une interface peut hériter de plusieurs interfaces en même temps, c'est ce qu'on appelle l'héritage multiple.
Par exemple, nous avons l'interface Player suivante :
Copiez le code comme suit :
interface joueur
{
jeu nul();
}
Nous ajoutons une nouvelle interface MusicCup. Il possède à la fois une interface Cup et une interface Player, et ajoute un prototype de méthode display().
Copiez le code comme suit :
l'interface MusicCup étend Cup, Player
{
affichage vide ();
}
(Comment utiliser l'interface, voir Implémentation de l'interface)
classe abstraite
Dans la vie, nous avons des concepts très abstraits. Ces concepts abstraits sont souvent un ensemble de nombreuses classes, telles que :
1. Céréales (peut être du maïs, du blé, du riz)
2. Graphiques (peuvent être des triangles, des cercles, des carrés)
Pour un autre exemple, nous avons donné un exemple auparavant :
1. Les êtres humains (peuvent être des hommes ou des femmes)
Lors de l'organisation de telles relations, nous pouvons utiliser l'héritage, tel que :
Selon notre bon sens :
1. Le terme « objet de la classe Food » est abstrait. Un tel objet doit appartenir à l’une des sous-classes Maïs, Riz et Blé.
2. La classe Food a la méthode eat() (la nourriture peut être mangée). Toutefois, une telle action est abstraite. Les manières spécifiques de manger sont différentes. Par exemple, le maïs doit être pelé et mangé, et le blé doit être moulu en farine. Nous devons remplacer la méthode eat() de la classe Food dans chaque classe.
abstrait et concret
Java fournit la syntaxe de classe abstraite pour illustrer l'abstraction des classes et de leurs méthodes. Par exemple:
Copiez le code comme suit :
classe abstraite Nourriture {
public abstrait void manger();
public void happyFood();
{
System.out.println("Bien ! Mange-moi !");
}
}
Les méthodes d'une classe peuvent être déclarées abstraites, comme eat() ci-dessus. Pour le moment, nous n’avons pas besoin de définir spécifiquement la méthode, il nous suffit de fournir le prototype de la méthode. Ceci est similaire aux interfaces. Lorsque nous héritons de cette classe, par exemple dans la classe Corn, nous devons fournir une définition spécifique de la méthode eat().
Une autre méthode de la classe happyFood() n'est pas
Lorsqu'une méthode abstraite apparaît dans une classe, le mot clé abstract doit être ajouté à la déclaration de cette classe, sinon Java signalera une erreur. Une classe abstraite ne peut pas être utilisée pour créer des objets.
Héritage des classes abstraites
Nous pouvons hériter d’une classe abstraite tout comme une classe. Nous devons utiliser des définitions de méthodes complètes pour couvrir les méthodes abstraites de la classe abstraite, sinon la classe dérivée est toujours une classe abstraite.
Les classes abstraites peuvent avoir des données membres dans leur définition. L’héritage des données membres est le même que celui d’une classe normale.
Résumer
héritage d'interface, héritage multiple
méthode abstraite, classe abstraite