Bons conseils
Bonjour à tous, je suis Cbiltps. Dans mon blog, s'il y a des phrases difficiles à comprendre ou des points clés difficiles à exprimer avec des mots , j'aurai des photos . Alors mon blog avec des photos est très important ! ! !
Les points de connaissance de cette section sont extraits de mon blog principal , qui sert en fait de contexte élargi pour refléter l'ordre logique de tous les points de connaissance . Par conséquent, je vais retirer les choses qui méritent d'être discutées séparément, afin que tout le monde puisse les manger !
Les corrections/ajouts sont les bienvenus, allez-y !
début de texte
Classe abstraite : une classe est modifiée par abstract , elle est directement appelée classe abstraite (la définition n'est pas importante !)
-
Les classes abstraites ne peuvent pas être instanciées directement (une erreur sera signalée directement)
-
Les classes abstraites peuvent avoir des méthodes et des membres ordinaires
-
Les classes ordinaires héritent des classes abstraites et toutes les méthodes abstraites des classes abstraites doivent être réécrites dans cette classe ordinaire (peut être remplacée et appelée)
-
Les méthodes abstraites ne peuvent pas être
private
décorées -
Une classe abstraite B hérite de la classe abstraite A, alors cette classe abstraite A n'a pas besoin d'implémenter la méthode abstraite de la classe abstraite A !
-
Sur la base de la relation d'héritage ci-dessus, la classe ordinaire C hérite de la classe abstraite B, alors les méthodes abstraites en A et B doivent être réécrites !
-
Les classes abstraites et les méthodes abstraites ne peuvent pas être
final
modifiées !
Interface : dans une classe, les méthodes portant le même nom sont considérées comme surchargées si elles ont des listes de paramètres différentes ( types de paramètres différents , nombres de paramètres différents ou même ordre différent des paramètres ). Dans le même temps, la surcharge n'a aucune exigence sur le type de retour , qui peut être identique ou différent, de sorte que la surcharge ne peut pas être jugée par le fait que le type de retour est le même .
- Les interfaces ne peuvent pas être instanciées par elles-mêmes
- Les méthodes contenues dans l'interface sont toutes
抽象方法
, et les champs ne peuvent contenir que静态常量
! - Les méthodes ordinaires dans les interfaces ne peuvent pas avoir d'implémentations spécifiques . Si vous voulez les implémenter, vous devez utiliser le mot-clé default pour modifier cette méthode !
- Une interface peut avoir une méthode statique , et cette méthode statique peut avoir un corps de méthode
- La méthode dans l'interface doit être une méthode abstraite , donc abstraite peut être omise
- La méthode dans l'interface doit être public , donc le public peut être omis
Remarque et résumé des différences :
- Ni l'un ni l'autre ne peut être instancié individuellement
- Les classes abstraites utilisent le mot clé extend pour hériter des classes abstraites ; les sous-classes utilisent le mot clé implements pour implémenter les interfaces
- Les méthodes abstraites peuvent avoir des modificateurs tels que public , protected et default ; les méthodes d'interface ont le modificateur par défaut public et les autres modificateurs ne peuvent pas être utilisés.
- Les classes abstraites ne peuvent être héritées que d'une seule manière ; les interfaces peuvent être implémentées de plusieurs manières
- Il peut y avoir des méthodes et des membres ordinaires dans la classe abstraite ; les méthodes contenues dans l'interface sont toutes
抽象方法
, et les champs ne peuvent contenir que静态常量
!