JavaRush /Blog Java /Random-FR /Pourquoi les interfaces sont-elles nécessaires ?
Павел
Niveau 11

Pourquoi les interfaces sont-elles nécessaires ?

Publié dans le groupe Random-FR
Pourquoi les interfaces sont-elles nécessaires ? Pourquoi l’héritage d’interface est-il nécessaire ? Pourquoi le polymorphisme est-il nécessaire ? Pour ceux qui ont lu et compris comment créer des interfaces, mais qui n'ont pas compris pourquoi.

Avertissement : Dans cet article et les suivants, les noms des classes et des méthodes seront donnés en russe.

En ce qui concerne les principes de la programmation orientée objet (POO) : polymorphisme, héritage et encapsulation, il est utile d'utiliser des analogies avec le monde réel. Le gros avantage de la POO est que l’on peut simuler une partie de l’univers réel dans un programme. Modélisons la famille Ivanov : papa , maman et garçon Petya . De papa, Petya a hérité de l'habitude de siroter en buvant du thé, et de maman, il a hérité de l'habitude de pincer les lèvres en lisant. Si nous essayons d’implémenter cette situation dans un programme, nous nous retrouverons avec trois classes :
class Папа
class Мама
class Петя
Papa et maman ont des habitudes qui doivent être transmises à Pete . Les habitudes sont des actions d'une certaine sorte - il est donc préférable de les mettre en œuvre dans le monde du logiciel en tant que méthodes : Papa d'abord :
class Папа {
public void прихлюпывать() {
System.out.println("Хлюп");
    }
}
Maintenant maman :
class Мама {
public void поджимать() {
System.out.println("Поджать губки");
   }
}
Si nous parlons d'héritage, alors il est logique d'écrire le code comme ceci :
class Петя extends Папа, Мама {
@Override
public void прихлюпывать() {
     System.out.println("Хлюп");
   }

@Override
public void поджимать() {
System.out.println("Поджать губки");
    }
}
C'est-à-dire hériter de Petya de papa et maman en même temps. Si vous l'écrivez ainsi, le compilateur se plaindra car Java ne peut pas implémenter l'héritage de plusieurs classes. D'ailleurs, c'est possible en C++, mais pas en Java, car de gros problèmes peuvent survenir avec l'héritage multiple : ils écrivent en détail sur Internet . Pourquoi les interfaces sont-elles nécessaires ?  - 1Pour contourner cet « impossible », Java dispose d’interfaces. Et pour les habitudes, nous créerons notre propre interface. Même deux : ils ressembleront à ceci :
public interface ПривычкиПапы {
    public void прихлюпывать();
}
public interface ПривычкиМамы {
    public void поджимать();
}
Dans l'interface, nous avons uniquement décrit les habitudes, mais n'avons pas décrit ce qu'elles font spécifiquement, car nous écrirons l'implémentation spécifique dans les classes. Tout d'abord, donnons à papa et maman leurs habitudes juridiques.
class Папа implements ПривычкиПапы {

   @Override
    public void прихлюпывать() {
     System.out.println("Хлюп");
   }
}

class Мама implements ПривычкиМамы{

@Override
public void поджимать() {
System.out.println("Поджать губки");
    }
}
Et maintenant, il est tout à fait légal de transférer les habitudes de papa et maman à Pete en même temps.
class Петя implements ПривычкиПапы, ПривычкиМамы {

@Override
public void прихлюпывать() {
     System.out.println("Хлюп");
   }

@Override
public void поджимать() {
System.out.println("Поджать губки");
    }
}
Autrement dit, une implémentation multiple (plus souvent appelée implémentation) en Java est tout à fait possible. Pourquoi les interfaces sont-elles nécessaires ?  - 2La signification des interfaces devrait maintenant être claire : en Java, vous pouvez implémenter l'héritage multiple à l'aide d'interfaces. Si nous développons la situation plus loin, par exemple : après tout, papa et maman ont probablement des habitudes qu'ils n'ont pas transmises à Petya , et Petya peut aussi avoir ses propres habitudes personnelles. Vous apprendrez comment transférer ce Santa Barbara vital vers le plan Java dans les épisodes suivants. Ce n'est pas le seul exemple pour comprendre les interfaces. Si vous n'avez pas lu les articles suivants, assurez-vous de lire : Interfaces en Java (si elles ne sont pas ouvertes, vous pouvez quitter votre profil ou lire en mode navigation privée) Pourquoi les interfaces sont nécessaires dans Java - implémentez tous les exemples de l'article ici et modifiez les méthodes à la fois dans les interfaces et dans les classes : noms des méthodes, signatures (ce que la méthode prend en entrée), types de sortie des méthodes. Comprenez par vous-même : - la différence entre l'implémentation d'une interface avec une classe et une classe abstraite ; - méthodes par défaut.
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION