Maison  >  Article  >  Java  >  L'utilisation et la différence entre les interfaces et les classes abstraites en Java

L'utilisation et la différence entre les interfaces et les classes abstraites en Java

WBOY
WBOYoriginal
2024-05-01 09:42:01536parcourir

Les interfaces et les classes abstraites sont utilisées pour définir des contrats comportementaux. Les interfaces définissent les signatures de méthodes, tandis que les classes abstraites contiennent des déclarations et des implémentations de méthodes. Les interfaces ne peuvent pas être instanciées, mais les classes abstraites le peuvent. Les méthodes des interfaces utilisent par défaut l'abstraction publique, tandis que les méthodes des classes abstraites utilisent par défaut l'abstraction protégée. Les interfaces sont utilisées pour définir des API communes, tandis que les classes abstraites sont utilisées pour créer des classes de base et fournir un comportement de base.

Java 中接口和抽象类的用法和区别

L'utilisation et la différence des interfaces et des classes abstraites en Java

Introduction

Les interfaces et les classes abstraites sont deux concepts très importants en Java. Ils sont tous deux utilisés pour définir des contrats comportementaux, mais ils ont des différences. usages et caractéristiques.

Interface

  • Une interface est une classe spéciale qui définit un ensemble de choses à faire (méthodes) mais n'implémente pas ces méthodes.
  • C'est un type purement abstrait et ne peut pas être instancié.
  • Une classe qui implémente une interface doit implémenter toutes les méthodes déclarées dans l'interface.
  • Les interfaces peuvent hériter d'autres interfaces, mais elles ne peuvent pas hériter de classes.
  • Les méthodes dans les interfaces sont publiques abstraites par défaut.

Exemple de code :

public interface Drawable {
    void draw();
}

Classe abstraite

  • Une classe abstraite est une classe qui contient des méthodes abstraites et des méthodes concrètes.
  • Les méthodes abstraites sont des méthodes qui sont uniquement déclarées mais non implémentées.
  • L'instanciation d'une classe abstraite lèvera une exception.
  • Les classes abstraites peuvent hériter d'autres classes ou classes abstraites.
  • Les méthodes des classes abstraites sont protégées par défaut.

Exemple de code :

public abstract class Shape {
    protected String color;
    public abstract void draw();
}

Usage

Interface : Utilisé pour définir une API publique, telle qu'une interface unifiée qui peut être implémentée par plusieurs classes.

  • Par exemple, une interface Drawable peut représenter n'importe quelle classe pouvant être dessinée, quelle que soit l'implémentation spécifique. Drawable 接口可以表示任何可以绘制的类,而无需考虑具体的实现。

抽象类:用于创建一个类的基类,并提供一些基本行为和状态,同时允许子类定制这些行为和状态。

  • 例如,一个 Shape 抽象类可以提供一些形状的共同属性(如颜色),并定义一个抽象的 draw() 方法,用于子类实现具体的绘制行为。

差异

  • 接口只包含方法声明,而抽象类既包含方法声明也包含实现。
  • 接口不能实例化,而抽象类可以派生出子类。
  • 接口中的方法默认是公共抽象的,而抽象类中的方法默认是受保护的抽象的。

实战案例

考虑一个自定义形状绘制应用程序,其中需要显示各种形状。

  • 可以创建一个 Drawable 接口来定义绘制方法。
  • 然后可以创建 RectangleCircle 等形状的类,这些类实现 Drawable 接口并提供自己的绘制实现。
  • 应用程序可以遍历各种形状并调用 draw()
🎜Classe abstraite🎜 : utilisée pour créer une classe de base pour une classe et fournir des comportements et des états de base, tout en permettant aux sous-classes de personnaliser ces comportements et ces états. 🎜🎜🎜Par exemple, une classe abstraite Shape peut fournir certains attributs communs des formes (tels que la couleur) et définir une méthode abstraite draw() pour l'implémentation de la sous-classe Comportement de dessin spécifique . 🎜🎜🎜🎜Différence🎜🎜🎜🎜Une interface ne contient que des déclarations de méthode, tandis qu'une classe abstraite contient à la fois des déclarations de méthode et des implémentations. 🎜🎜Les interfaces ne peuvent pas être instanciées, mais les classes abstraites peuvent dériver des sous-classes. 🎜🎜Les méthodes dans les interfaces sont publiques abstraites par défaut, tandis que les méthodes dans les classes abstraites sont protégées abstraites par défaut. 🎜🎜🎜🎜Cas pratique🎜🎜🎜Envisagez une application de dessin de formes personnalisées dans laquelle diverses formes doivent être affichées. 🎜🎜🎜Vous pouvez créer une interface Drawable pour définir les méthodes de dessin. 🎜🎜Vous pouvez ensuite créer des classes de formes Rectangle, Circle et autres, qui implémentent l'interface Drawable et fournissent leur propre implémentation de dessin. 🎜🎜Les applications peuvent parcourir différentes formes et appeler la méthode draw() pour les afficher. 🎜🎜

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