Maison  >  Article  >  Java  >  Quelles sont les différences entre les classes abstraites, les classes ordinaires et les interfaces en Java ?

Quelles sont les différences entre les classes abstraites, les classes ordinaires et les interfaces en Java ?

王林
王林avant
2019-11-27 14:27:234941parcourir

Quelles sont les différences entre les classes abstraites, les classes ordinaires et les interfaces en Java ?

Classe abstraite :

S'il y a des méthodes abstraites dans une classe, la classe devient une classe abstraite.

La classe dans la classe abstraite doit être précédée du modificateur abstract.

Une classe abstraite peut avoir des méthodes ordinaires ou des méthodes abstraites, et le nombre de méthodes abstraites peut être 0 ou multiple.

La sous-classe hérite de la classe parent et doit réécrire toutes les méthodes abstraites, à moins que cette classe ne devienne également une classe abstraite.

Recommandation de vidéo d'apprentissage en ligne gratuite : apprentissage en ligne Java

Interface :

En apparence, l'interface est spéciale Une classe abstraite, mais une classe est une classe et une interface est une interface, qui est une relation parallèle.

Toutes les méthodes d'une interface doivent être abstraites. (Après la version 1.8, les interfaces sont autorisées à définir des méthodes non abstraites)

Les définitions de méthodes dans l'interface sont par défaut du type public abstract et les variables membres sont par défaut du type public static final. (En cas d'omission, le système le complétera par défaut).

La différence entre les classes abstraites et les classes ordinaires :

Une classe contenant des méthodes abstraites est appelée une classe abstraite, mais cela ne veut pas dire qu'il ne peut y avoir que des méthodes abstraites dans les classes abstraites, comme les classes ordinaires, elles peuvent également avoir des variables membres et des méthodes membres ordinaires.

La différence entre les classes abstraites et les classes ordinaires est la suivante :

Les modificateurs d'accès des méthodes abstraites doivent être public et protected.

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

Si une classe hérite d'une classe abstraite, la sous-classe doit implémenter la méthode abstraite de la classe parent. Si la sous-classe n'implémente pas la méthode abstraite de la classe parent, la sous-classe doit également être une classe abstraite.

La différence entre les classes abstraites et les interfaces :

Une classe ne peut hériter que d'une seule classe abstraite, tandis qu'une classe peut implémenter plusieurs interfaces.

Les classes abstraites peuvent avoir des constructeurs, mais les interfaces ne peuvent pas avoir de constructeurs.

Les classes abstraites peuvent avoir des variables membres, mais les interfaces n'ont pas de variables membres. (Modifié par final et transformé en constante)

Il peut y avoir des méthodes ordinaires dans les classes abstraites, mais toutes les méthodes dans les interfaces doivent être abstraites. (Après la version 1.8, les interfaces sont autorisées à définir des méthodes non abstraites)

Le type d'accès des méthodes abstraites dans les classes abstraites peut être public, protected, mais le type d'accès des méthodes abstraites dans les interfaces ne peut que être public, et La valeur par défaut est public abstract (en cas d'omission, elle sera automatiquement complétée par défaut).

Les variables membres dans les classes abstraites peuvent être de différents types, tandis que les variables membres dans les interfaces ne peuvent être que de type public static final.

Les classes abstraites peuvent avoir des blocs de code statiques et des méthodes statiques, mais les interfaces ne peuvent pas contenir de blocs de code statiques et de méthodes statiques.

Si vous souhaitez en savoir plus sur des articles et des didacticiels connexes, veuillez visiter : Introduction au langage Java

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer