Maison >Java >JavaBase >La différence entre l'interface et la classe abstraite en Java

La différence entre l'interface et la classe abstraite en Java

(*-*)浩
(*-*)浩original
2019-11-11 09:12:333146parcourir

La différence entre l'interface et la classe abstraite en Java

Cours abstrait (Apprentissage recommandé : cours java)

Le cours abstrait doit être utilisé Modification, la sous-classe doit implémenter la méthode abstraite dans la classe abstraite. S'il existe des méthodes non implémentées, la sous-classe doit également être décorée avec abstract. Le modificateur d'autorisation par défaut d'une classe abstraite est public, qui peut être défini comme public ou protégé. S'il est défini comme privé, les sous-classes ne peuvent pas en hériter. Les classes abstraites ne peuvent pas créer d'objets

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

Les classes abstraites doivent être modifiées avec public et procted (si elles sont modifiées avec private, les sous-classes ne peuvent pas hériter, et sa méthode abstraite ne peut pas être implémentée). La valeur par défaut est public

Les classes abstraites ne peuvent pas créer d'objets

Si une sous-classe hérite d'une classe abstraite, elle doit implémenter toutes ses méthodes abstraites. S'il existe des méthodes abstraites non implémentées, elles doivent être définies comme abstraites

Interface

Les variables de l'interface sont implicitement modifiées avec public static final, et une initialisation doit être valeur donnée.

La méthode est implicitement modifiée avec public abstract (et elle ne peut être que publique. Si elle est privée ou protégée, alors une erreur de compilation sera signalée).

Les méthodes dans les interfaces ne peuvent pas avoir d'implémentations spécifiques par défaut (les implémentations par défaut sont disponibles à partir de JDK1.8)

La différence entre les interfaces et les classes abstraites

Les classes abstraites ne peuvent hériter qu'une seule fois, mais peuvent implémenter plusieurs interfaces

Les interfaces et les classes abstraites doivent implémenter toutes les méthodes. S'il y a des méthodes abstraites non implémentées dans la classe abstraite, alors la sous-classe doit également être définie comme une classe abstraite. Les classes abstraites peuvent avoir des méthodes non abstraites

Les variables de l'interface doivent être modifiées avec public static final et une valeur initiale doit être donnée. La classe d'implémentation ne peut donc pas être redéfinie, ni sa valeur modifiée.

Les méthodes de l'interface sont publiques abstraites par défaut et ne peuvent être que de ce type. ne peut pas être statique et les méthodes des interfaces ne peuvent pas être remplacées par des sous-classes. Les méthodes statiques sont autorisées dans les classes abstraites

.

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