Maison >Java >javaDidacticiel >Classe abstraite en Java
L'article suivant fournit un aperçu de la classe abstraite en Java. Les classes abstraites sont comme toutes les autres classes normales en Java. La différence significative entre les classes abstraites et régulières est la création de la classe abstraite, nous devons utiliser le mot-clé 'ABSTRACT'. Il s'agit d'une séparation de l'implémentation des classes. Ils définissaient les caractéristiques très communes de ses sous-classes. Un tel type de classe est appelé classe abstraite. Plus important encore, nous ne pouvons pas créer un objet d'une classe abstraite.
Commencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
Les classes abstraites peuvent contenir des méthodes abstraites et non abstraites. Cependant, ils ne peuvent pas contenir un corps de méthode abstraite que la sous-classe peut uniquement fournir. Si la sous-classe n’implémente pas la méthode abstraite, alors nous devons explicitement la rendre ABSTRACT. En d’autres termes, si une classe contient une méthode abstraite, elle doit se définir comme ABSTRACT. Nous pouvons regrouper plusieurs classes Java à l'aide de classes abstraites, optimiser le code, rendre le code plus lisible et réduire la redondance. Il fournit également un modèle pour les futurs cours.
La syntaxe de la classe abstraite est la suivante :
Les exemples suivants sont donnés ci-dessous :
Humain.java
package com.cont.article; public abstract class Human { public abstract void whatTheylike(); public void doTheysleep() { System.out.println("Yes every human require sleep."); } }
Humain1.java
package com.cont.article; public class Human1 extends Human { @Override public void whatTheylike() { System.out.println("we like to have icecream."); } }
Humain2.java
package com.cont.article; public class Human2 extends Human { @Override public void whatTheylike() { System.out.println("we like to have coffee."); } }
TestHuman.java
package com.cont.article; public class TestHuman { public static void main(String[] args) { Human human1 = new Human1(); human1.whatTheylike(); Human human2 = new Human2(); human2.whatTheylike(); human1.doTheysleep(); human2.doTheysleep(); } }
Sortie :
Dans l'exemple ci-dessus, HUMAN est une classe abstraite qui définit les besoins, les goûts et les aversions communs d'un humain. Il existe différents types d’humains avec des goûts et des aversions différents. Ainsi, chaque humain peut fournir une implémentation spécifique de ce qu’il aime. Cela leur sera spécifique uniquement.
Le principal avantage de la classe abstraite est que nous avons une implémentation spécifique des méthodes en fonction d'une exigence, réduisant la redondance, augmentant la lisibilité du code, cachant l'implémentation des méthodes et fournissant une abstraction partielle.
Nous pouvons avoir un exemple supplémentaire pour comprendre quand utiliser les classes abstraites.
Disons que nous avons une classe Animal. Nous avons différents animaux sur Terre, et ils diffèrent tous les uns des autres dans un sens ou dans un autre. Néanmoins, il contiendra toutes les caractéristiques communes à tous.
Maintenant, cette classe Animal ne peut pas avoir de méthodes spécifiques pour chaque Animal. Ainsi, grâce au concept de classe abstraite, nous pouvons implémenter cette fonctionnalité sans code redondant.
Tous les animaux ont différents types de sons, habitudes, etc. Par exemple, les chiens, les chats, les éléphants et les collations ont des sons différents. Donc pour cela, nous pouvons avoir une méthode générique dans la classe parent à travers laquelle toutes les autres sous-classes ou classes enfants peuvent fournir leur implémentation spécifique.
Dans la classe parent, c'est-à-dire Animal, nous avons une méthode abstraite générique appelée leur Sound (). Ainsi, chaque classe enfant doit remplacer cette méthode et fournir son implémentation spécifique.
Vous trouverez ci-dessous les distinctions entre la classe abstraite et l'interface :
Une classe abstraite est utilisée pour fournir une abstraction partielle. Une classe abstraite ne peut pas être instanciée à l'aide du mot-clé NEW. Une méthode abstraite n'a pas de corps et se termine toujours par un point-virgule (;). La classe abstraite contient des méthodes abstraites et non abstraites. La sous-classe d'une superclasse abstraite doit implémenter toutes les méthodes abstraites ; s'il ne le fournit pas, il doit alors se déclarer comme classe abstraite. Une sous-classe peut être abstraite même si la superclasse est concrète. Une classe non abstraite ne peut pas contenir de méthodes abstraites. De plus, la méthode abstraite n’est pas statique. Par conséquent, les classes abstraites ont également des méthodes abstraites et concrètes, elles ne peuvent donc pas fournir une abstraction à 100 %. Il s'agit d'un processus consistant à cacher la logique complexe à l'utilisateur final et à lui montrer uniquement les services.
D'un autre côté, une sous-classe peut être abstraite même si sa superclasse est concrète et peut également être utilisée comme type de données. Une classe abstraite peut avoir des champs et des méthodes statiques. Vous pouvez utiliser ces membres statiques avec une référence de classe.
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!