Que sont les classes abstraites et les méthodes abstraites Java ?
Dans l'héritage des classes, si de nouvelles sous-classes sont définies, les sous-classes deviennent de plus en plus spécifiques, et la classe parent devient plus générale et polyvalente, la conception de la classe doit assurer que les classes parent et enfant peuvent partager des caractéristiques, parfois la classe parent est conçue pour être très abstraite, de sorte que la classe parent n'a pas d'instances spécifiques. Une telle classe est généralement appelée classe abstraite lorsque nous concevons une classe et n'en avons pas besoin ; créer des instances de cette classe, on peut considérer Cette classe est définie comme une classe abstraite et ses sous-classes implémentent les méthodes abstraites de cette classe
classe abstraite (classe abstraite )
Lorsque le mot-clé abstract est utilisé pour modifier une classe, la classe est appelée classe abstraite. Une classe abstraite est une collection d'attributs publics de toutes ses sous-classes et une classe qui contient une ou plusieurs méthodes abstraites.
Les classes abstraites peuvent être considérées comme d'autres abstractions de classes. Dans le domaine orienté objet, les classes abstraites sont principalement utilisées pour masquer les types.
Caractéristiques des classes abstraites :
(1) Ne peut pas être instanciée
(2) Les classes abstraites ont des constructeurs (toutes les classes ont des constructeurs)
(3 ) La classe où se trouve la méthode abstraite doit être une classe abstraite (car les méthodes abstraites n'ont pas de corps de méthode. Si la classe n'est pas une classe abstraite, alors la classe peut instancier l'objet, appeler la méthode abstraite, puis n'avoir aucune méthode C'est une contradiction si la fonction est implémentée concrètement)
(4) Une classe abstraite ne peut avoir aucune méthode abstraite
//抽象类 abstract class Person { String name; public Person(){}//抽象类的构造方法 public abstract void dink();//抽象方法,无{}方法体 public void eat(){ //非抽象方法 }; } class Student extends Person{ @Override public void eat() { System.out.println("吃饭"); } @Override public void dink() { System.out.println("喝水"); } }
Méthode abstraite (méthode abstraite)
La méthode modifiée par abstract est une méthode abstraite, et toutes les méthodes abstraites doivent exister dans la classe abstraite.
Les méthodes définies dans les classes abstraites sont appelées méthodes abstraites. Ces méthodes n'ont que la déclaration de l'en-tête de la méthode, et un point-virgule est utilisé pour remplacer la définition du corps de la méthode, c'est-à-dire uniquement la forme d'interface du La méthode membre est définie sans l’opération concrète.
Caractéristiques des méthodes abstraites :
(1) format, pas de corps de méthode, incluant { }, par exemple public abstract void dink();
(2) Méthode abstraite uniquement La fonction de la méthode est conservée, et l'exécution spécifique est confiée à la sous-classe qui hérite de la classe abstraite, et la sous-classe réécrit la méthode abstraite
(3) Si la sous-classe hérite de la classe abstraite et réécrit toutes les méthodes de la méthode abstraite de la classe parent, alors cette sous-classe n'est pas une classe abstraite et peut être instanciée
(4) Si la sous-classe hérite de la classe abstraite et ne remplace pas toutes les méthodes abstraites de la classe parent , cela signifie qu'il existe une méthode abstraite, alors cette sous-classe doit être déclarée abstraite.
Dans l'exemple ci-dessus, la sous-classe Student hérite de la classe parent abstraite et remplace la méthode abstraite eat(). Si elle ne remplace pas la méthode abstraite drink(), un. une erreur sera signalée. La solution est de réécrire la méthode drink(), ou de transformer Student en classe abstraite
Les scénarios d'utilisation des classes abstraites
Les classes abstraites sont généralement utilisé dans de nombreuses applications Il est plus applicable en l'état
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!