Dans la hiérarchie des successions descendante, les classes situées au niveau supérieur sont plus générales et peuvent même être plus abstraites. Dans une certaine perspective, les classes d'ancêtre sont plus générales, ils ne contiennent que certains des membres les plus élémentaires, et les gens ne l'utilisent que comme classe de base pour dériver d'autres classes et ne seront pas utilisés pour créer des objets. Même, vous ne pouvez donner que la définition de la méthode sans l'implémenter, et les sous-classes l'implémentent en fonction des besoins spécifiques.
Cette méthode qui ne donne que des définitions de méthode mais qui n'implémente pas concrètement est appelée méthode abstraite. Les classes contenant une ou plusieurs méthodes abstraites doivent également être déclarées comme des classes abstraites.
Utilisez le modificateur abstrait pour représenter des méthodes abstraites et des classes abstraites.
En plus de contenir des méthodes abstraites, les classes abstraites peuvent également contenir des variables spécifiques et des méthodes spécifiques. Même si une classe ne contient pas de méthodes abstraites, elle peut être déclarée comme une classe abstraite pour empêcher qu'il soit instancié.
Les classes abstraites ne peuvent pas être instanciées, les méthodes abstraites doivent être implémentées dans les sous-classes. Veuillez consulter le code suivant:
importation statique java.lang.System. Driver D = New Driver (); D.SetName ("Xiao Chen"); D.Work (); void setName (String Name) {this.name = name;} public String getName () {return this.name; public void work () {out.println ("Mon nom est" + this.getName () + ", je donne une conférence, s'il vous plaît ne regardez pas autour ..."); // Cette méthode doit être mise en œuvre publique void work () {out.println ("mon nom est" + this.getName () + ", je conduis et je ne peux pas répondre à l'appel ...");
Résultats en cours:
Je m'appelle Wang Ming, je donne une conférence, s'il vous plaît ne regardez pas autour de moi ... Je m'appelle Xiao Chen, je conduis et je ne peux pas répondre au téléphone ...
Quelques explications sur les cours abstraits:
Les classes abstraites ne peuvent pas être utilisées directement. Cependant, une variable peut être créée dont le type est une classe abstraite et le laisser pointer vers une instance d'une sous-classe en béton. , c'est-à-dire l'application du polymorphisme.
Il ne peut pas y avoir de méthodes de construction abstraites ou de méthodes statiques abstraites.
Une classe deviendra une classe abstraite dans les cas suivants:
Lorsqu'une ou plusieurs méthodes d'une classe sont des méthodes abstraites;
Lorsqu'une classe est une sous-classe d'une classe abstraite et ne peut fournir aucun détail d'implémentation ou un corps de méthode pour une méthode abstraite;
Lorsqu'une classe implémente une interface et ne peut pas fournir des détails d'implémentation ou un corps de méthode pour toute méthode abstraite: Remarque;
Ce dont nous parlons ici, c'est que dans ces cas, une classe deviendra une classe abstraite, et il n'est pas dit que la classe abstraite aura certainement ces situations.
Une erreur typique: une classe abstraite doit contenir des méthodes abstraites. Mais d'un autre côté, "une classe contenant des méthodes abstraites doit être une classe abstraite" est correcte.
En fait, une classe abstraite peut être une classe complètement normale