


L'utilisation et la différence entre les interfaces et les classes abstraites en Java
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.
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
接口来定义绘制方法。 - 然后可以创建
Rectangle
、Circle
等形状的类,这些类实现Drawable
接口并提供自己的绘制实现。 - 应用程序可以遍历各种形状并调用
draw()
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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.

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 à 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

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

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.

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

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.

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.
