Maison Java javaDidacticiel 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

May 01, 2024 am 09:42 AM
接口 抽象类

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();
}
Copier après la connexion

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();
}
Copier après la connexion

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelles sont les interfaces internes d'une carte mère d'ordinateur ? Introduction recommandée aux interfaces internes d'une carte mère d'ordinateur ? Quelles sont les interfaces internes d'une carte mère d'ordinateur ? Introduction recommandée aux interfaces internes d'une carte mère d'ordinateur ? Mar 12, 2024 pm 04:34 PM

Lorsque nous assemblons l'ordinateur, bien que le processus d'installation soit simple, nous rencontrons souvent des problèmes de câblage. Souvent, les utilisateurs branchent par erreur la ligne d'alimentation du radiateur du processeur au SYS_FAN. Bien que le ventilateur puisse tourner, il peut ne pas fonctionner lorsque le ventilateur fonctionne. L'ordinateur est allumé. Il y aura une erreur F1 "CPUFanError", qui empêchera également le refroidisseur du processeur d'ajuster intelligemment la vitesse. Partageons les connaissances communes sur les interfaces CPU_FAN, SYS_FAN, CHA_FAN et CPU_OPT sur la carte mère de l'ordinateur. Science populaire sur les interfaces CPU_FAN, SYS_FAN, CHA_FAN et CPU_OPT sur la carte mère de l'ordinateur 1. CPU_FANCPU_FAN est une interface dédiée pour le radiateur du processeur et fonctionne à 12 V.

Paradigmes de programmation et modèles de conception courants en langage Go Paradigmes de programmation et modèles de conception courants en langage Go Mar 04, 2024 pm 06:06 PM

En tant que langage de programmation moderne et efficace, le langage Go possède de riches paradigmes de programmation et des modèles de conception qui peuvent aider les développeurs à écrire du code maintenable de haute qualité. Cet article présentera les paradigmes de programmation et les modèles de conception courants dans le langage Go et fournira des exemples de code spécifiques. 1. Programmation orientée objet Dans le langage Go, vous pouvez utiliser des structures et des méthodes pour implémenter une programmation orientée objet. En définissant une structure et des méthodes de liaison à la structure, les fonctionnalités orientées objet d'encapsulation de données et de liaison de comportement peuvent être obtenues. packagemaini

Introduction aux interfaces PHP et comment les définir Introduction aux interfaces PHP et comment les définir Mar 23, 2024 am 09:00 AM

Introduction à l'interface PHP et à sa définition. PHP est un langage de script open source largement utilisé dans le développement Web. Il est flexible, simple et puissant. En PHP, une interface est un outil qui définit des méthodes communes entre plusieurs classes, réalisant le polymorphisme et rendant le code plus flexible et réutilisable. Cet article présentera le concept des interfaces PHP et comment les définir, et fournira des exemples de code spécifiques pour démontrer leur utilisation. 1. Concept d'interface PHP L'interface joue un rôle important dans la programmation orientée objet, définissant l'application de classe

Solution à NotImplementedError() Solution à NotImplementedError() Mar 01, 2024 pm 03:10 PM

La raison de l'erreur est en python. La raison pour laquelle NotImplementedError() est lancée dans Tornado peut être due au fait qu'une méthode ou une interface abstraite n'est pas implémentée. Ces méthodes ou interfaces sont déclarées dans la classe parent mais non implémentées dans la classe enfant. Les sous-classes doivent implémenter ces méthodes ou interfaces pour fonctionner correctement. Comment résoudre ce problème consiste à implémenter la méthode abstraite ou l'interface déclarée par la classe parent dans la classe enfant. Si vous utilisez une classe pour hériter d'une autre classe et que vous voyez cette erreur, vous devez implémenter toutes les méthodes abstraites déclarées dans la classe parent dans la classe enfant. Si vous utilisez une interface et que vous voyez cette erreur, vous devez implémenter toutes les méthodes déclarées dans l'interface dans la classe qui implémente l'interface. Si vous n'êtes pas sûr de savoir lequel

Application d'interfaces et de classes abstraites dans les modèles de conception en Java Application d'interfaces et de classes abstraites dans les modèles de conception en Java May 01, 2024 pm 06:33 PM

Les interfaces et les classes abstraites sont utilisées dans les modèles de conception pour le découplage et l'extensibilité. Les interfaces définissent les signatures des méthodes, les classes abstraites fournissent une implémentation partielle et les sous-classes doivent implémenter des méthodes non implémentées. Dans le modèle de stratégie, l'interface est utilisée pour définir l'algorithme, et la classe abstraite ou la classe concrète assure l'implémentation, permettant une commutation dynamique des algorithmes. Dans le modèle d'observateur, les interfaces sont utilisées pour définir le comportement de l'observateur, et les classes abstraites ou concrètes sont utilisées pour s'abonner et publier des notifications. Dans le modèle d'adaptateur, les interfaces sont utilisées pour adapter les classes existantes ou les classes concrètes peuvent implémenter des interfaces compatibles, permettant une interaction avec le code d'origine.

Aperçu du système Hongmeng : mesure réelle des fonctions et expérience d'utilisation Aperçu du système Hongmeng : mesure réelle des fonctions et expérience d'utilisation Mar 23, 2024 am 10:45 AM

En tant que nouveau système d'exploitation lancé par Huawei, le système Hongmeng a fait sensation dans l'industrie. En tant que nouvelle tentative de Huawei après l'interdiction américaine, le système Hongmeng suscite de grands espoirs et attentes. Récemment, j'ai eu la chance d'acquérir un téléphone mobile Huawei équipé du système Hongmeng. Après une période d'utilisation et de tests réels, je partagerai quelques tests fonctionnels et une expérience d'utilisation du système Hongmeng. Tout d’abord, jetons un coup d’œil à l’interface et aux fonctions du système Hongmeng. Le système Hongmeng adopte le style de conception propre à Huawei dans son ensemble, qui est simple, clair et fluide. Sur le bureau, divers

Implémentation de classe interne d'interfaces et de classes abstraites en Java Implémentation de classe interne d'interfaces et de classes abstraites en Java Apr 30, 2024 pm 02:03 PM

Java permet de définir des classes internes au sein d'interfaces et de classes abstraites, offrant ainsi une flexibilité pour la réutilisation et la modularisation du code. Les classes internes des interfaces peuvent implémenter des fonctions spécifiques, tandis que les classes internes des classes abstraites peuvent définir des fonctions générales et les sous-classes fournissent des implémentations concrètes.

Une discussion approfondie des similitudes et des différences entre les interfaces fonctionnelles Golang et les classes abstraites Une discussion approfondie des similitudes et des différences entre les interfaces fonctionnelles Golang et les classes abstraites Apr 20, 2024 am 09:21 AM

Les interfaces fonctionnelles et les classes abstraites sont utilisées pour la réutilisabilité du code, mais elles sont implémentées de différentes manières : interfaces fonctionnelles via des fonctions de référence, classes abstraites via l'héritage. Les interfaces fonctionnelles ne peuvent pas être instanciées, mais les classes abstraites le peuvent. Les interfaces fonctionnelles doivent implémenter toutes les méthodes déclarées, tandis que les classes abstraites ne peuvent implémenter que certaines méthodes.

See all articles