Maison  >  Article  >  Java  >  Quand utiliser des interfaces et quand utiliser des classes abstraites en Java

Quand utiliser des interfaces et quand utiliser des classes abstraites en Java

王林
王林original
2024-05-01 12:15:02730parcourir

Quand utiliser les interfaces : Définir des fonctions partagées, implémentées par différents types d'objets. Définissez des interfaces de rappel (telles que des écouteurs d'événements). Implémentez l’héritage multiple. Quand utiliser des classes abstraites : définissez des fonctions communes implémentées via l’héritage. Implémentez l'héritage unique et le polymorphisme. Définissez une méthode ou un champ protégé.

Java 中何时使用接口何时使用抽象类

Quand utiliser des interfaces et des classes abstraites en Java

En Java, les interfaces et les classes abstraites sont des concepts abstraits utilisés pour définir le comportement des objets. Malgré leurs similitudes, il existe de nettes différences dans leur finalité d’utilisation.

Interface

Une interface est un contrat qui contient des signatures de méthode (c'est-à-dire des déclarations de méthode sans implémentation). Il définit l'ensemble des méthodes publiques qu'une classe doit implémenter.

Quand utiliser les interfaces ?

  • Définir des fonctionnalités communes pouvant être partagées par différents types d'objets.
  • Lorsque vous devez définir une interface de rappel, telle qu'un écouteur d'événement.
  • Lorsque l'héritage multiple doit être implémenté (non pris en charge en Java).
public interface Animal {
    void eat();
    void sleep();
}

Classe abstraite

Une classe abstraite est une classe partiellement abstraite qui contient une combinaison d'implémentations de méthodes et de méthodes abstraites. Les classes abstraites ne peuvent pas être instanciées, mais peuvent être héritées par les sous-classes.

Quand utiliser les cours abstraits ?

  • Définissez des fonctionnalités communes qui ne peuvent être obtenues que par héritage.
  • Lorsque vous devez implémenter l'héritage unique et le polymorphisme.
  • Lorsque vous devez définir des méthodes ou des champs protégés.
public abstract class Mammal {
    public void giveBirth() { ... }
    public abstract void makeSound();
}

Cas pratique

Interface

Créez une interface Shape et définissez des méthodes publiques de calcul de l'aire et du périmètre :

public interface Shape {
    double getArea();
    double getPerimeter();
}

Utilisez cette interface pour créer des classes Rectangle et Cercle :

public class Rectangle implements Shape {
    // ...
}

public class Circle implements Shape {
    // ...
}

Classe abstraite

Créez une classe abstraite Shape et définissez des méthodes protégées pour calculer l'aire et le périmètre :

public abstract class Shape {
    protected double area;
    protected double perimeter;

    public abstract double getArea();
    public abstract double getPerimeter();
}

Créez des classes Rectangle et Circle en utilisant cette classe abstraite, en remplaçant les méthodes getArea() et getPerimeter() :

public class Rectangle extends Shape {
    // ...
}

public class Circle extends Shape {
    // ...
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn