Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Java

Interface vs classe abstraite en Java :quelle est la différence ?

Qu'est-ce que l'interface ?

L'interface est un plan qui peut être utilisé pour implémenter une classe. L'interface ne contient pas de méthodes concrètes (méthodes qui ont du code). Toutes les méthodes d'une interface sont des méthodes abstraites.

Une interface ne peut pas être instanciée. Cependant, les classes qui implémentent des interfaces peuvent être instanciées. Les interfaces ne contiennent jamais de variables d'instance, mais elles peuvent contenir des variables finales statiques publiques (c'est-à-dire des variables de classe constantes)

Qu'est-ce qu'une classe abstraite ?

Une classe qui a le mot clé abstract dans sa déclaration est appelée classe abstraite. Les classes abstraites doivent avoir au moins une méthode abstraite. , c'est-à-dire des méthodes sans corps. Il peut avoir plusieurs méthodes concrètes.

Les classes abstraites vous permettent de créer des plans pour des classes concrètes. Mais la classe qui hérite doit implémenter la méthode abstraite.

Les classes abstraites ne peuvent pas être instanciées.

Raisons importantes pour l'utilisation des interfaces

Raisons importantes pour l'utilisation de la classe abstraite

Interface vs. Classe abstraite

Une classe abstraite vous permet de créer des fonctionnalités que les sous-classes peuvent implémenter ou remplacer, tandis qu'une interface vous permet uniquement d'énoncer des fonctionnalités mais pas de les implémenter. Une classe ne peut étendre qu'une seule classe abstraite alors qu'une classe peut implémenter plusieurs interfaces.

Paramètres Interface Cours abstrait
Vitesse Lent Rapide
Héritages multiples Mettre en place plusieurs interfaces Une seule classe abstraite
Structure Méthodes abstraites Méthodes abstraites et concrètes
Quand utiliser Amélioration future Pour éviter l'indépendance
Héritage/ Implémentation Une classe peut implémenter plusieurs interfaces La classe ne peut hériter que d'une seule classe abstraite
Mise en œuvre par défaut Lors de l'ajout de nouvelles choses à l'interface, c'est un cauchemar de trouver tous les implémenteurs et d'implémenter des choses nouvellement définies. En cas de classe abstraite, vous pouvez profiter de l'implémentation par défaut.
Modificateurs d'accès L'interface n'a pas de modificateurs d'accès. Tout ce qui est défini à l'intérieur de l'interface est considéré comme un modificateur public. La classe abstraite peut avoir un modificateur d'accès.
Quand utiliser Il est préférable d'utiliser l'interface lorsque plusieurs implémentations ne partagent que la signature de méthode. Hiérarchie polymorphe des types de valeurs. Il doit être utilisé lorsque plusieurs implémentations du même type partagent un comportement commun.
Champs de données l'interface ne peut pas contenir de champs de données. la classe peut avoir des champs de données.
Héritage multiple par défaut Une classe peut implémenter de nombreuses interfaces. Une classe hérite d'une seule classe abstraite.
Mise en œuvre Une interface est abstraite de sorte qu'elle ne peut fournir aucun code. Une classe abstraite peut donner un code complet par défaut qui doit être remplacé.
Utilisation des modificateurs d'accès Vous ne pouvez pas utiliser de modificateurs d'accès pour la méthode, les propriétés, etc. Vous pouvez utiliser une classe abstraite qui contient des modificateurs d'accès.
Utilisation Les interfaces aident à définir les capacités périphériques d'une classe. Une classe abstraite définit l'identité d'une classe.
Champs définis Aucun champ ne peut être défini Une classe abstraite vous permet de définir à la fois des champs et des constantes
Héritage Une interface peut hériter de plusieurs interfaces mais ne peut pas hériter d'une classe. Une classe abstraite peut hériter d'une classe et de plusieurs interfaces.
Constructeur ou destructeurs Une interface ne peut pas déclarer de constructeurs ou de destructeurs. Une classe abstraite peut déclarer des constructeurs et des destructeurs.
Limite d'extensions Il peut étendre n'importe quel nombre d'interfaces. Il ne peut étendre qu'une classe ou une classe abstraite à la fois.
Mot-clé abstrait Dans un mot-clé d'interface abstrait, est facultatif pour déclarer une méthode en tant qu'abstrait. Dans une classe abstract, le mot clé abstract est obligatoire pour déclarer une méthode en tant qu'abstract.
Type de classe Une interface ne peut avoir que des méthodes abstraites publiques. Une classe abstraite a des méthodes abstraites protégées et publiques.

Exemple de code pour l'interface et la classe abstraite en Java

Voici un exemple de code pour créer une interface et une classe abstraite en Java

Syntaxe d'interface

interface name{
//methods
}

Exemple d'interface Java :

interface Pet {
    public void test();
}
class Dog implements Pet {
    public void test() {
        System.out.println("Interface Method Implemented");
    }
    public static void main(String args[]) {
        Pet p = new Dog();
        p.test();
    }
}

Syntaxe de classe abstraite

abstract class name{
    // code
}

Exemple de classe abstraite :

abstract class Shape {
    int b = 20;
    abstract public void calculateArea();
}

public class Rectangle extends Shape {
    public static void main(String args[]) {
        Rectangle obj = new Rectangle();
        obj.b = 200;
        obj.calculateArea();
    }
    public void calculateArea() {
        System.out.println("Area is " + (b * b));
    }
}

Java

  1. Soudage à main levée vs soudage à main levée :quelle est la différence ?
  2. Fer contre acier :quelle est la différence ?
  3. Clous coupés ou clous métalliques :quelle est la différence ?
  4. Découpe plasma vs laser :quelle est la différence ?
  5. Tour vs fraisage :quelle est la différence ?
  6. Fraisage vs meulage :quelle est la différence ?
  7. Classe abstraite Java et méthodes abstraites
  8. InterfaceJava
  9. Java - Abstraction