Classe abstraite en Java - avec des exemples
Publié: 2022-06-24L'abstraction de données est la technique consistant à dissimuler certaines informations et à n'afficher que les détails requis pour les utilisateurs. Cette abstraction de données peut être réalisée de deux manières, la classe abstraite et les interfaces.
Qu'est-ce qu'une classe abstraite en Java ?
Une classe abstraite en Java est une classe restreinte encapsulée ou déclarée avec le mot-clé abstract. Une classe abstraite peut avoir à la fois des méthodes abstraites et non abstraites. Il ne peut pas être utilisé pour créer un objet. Pour accéder à une classe abstraite, elle doit être héritée d'une autre classe.
Apprenez des cours de développement de logiciels en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.
Règles de la classe abstraite
- Une classe abstraite ne peut être déclarée qu'au sein d'un mot-clé abstrait.
- Il peut contenir à la fois des méthodes abstraites et non abstraites.
- Il peut également avoir des méthodes finales.
- Il ne peut jamais être instancié.
- Les constructeurs et les méthodes statiques peuvent également être utilisés.
Exemple d'une classe abstraite :
classe abstraite B{}
Une méthode abstraite en Java
Cette méthode ne peut être utilisée que dans une classe abstraite et ne contient pas de corps. Le corps sera fourni par la sous-classe héritée.
Un exemple de méthode abstraite est :
abstract void printStatus(); // pas de corps de méthode ni de résumé
Exemple de classe abstraite Java avec une méthode abstraite
Dans l'exemple suivant, la voiture est une classe abstraite avec une méthode abstraite, run. La mise en œuvre est assurée par la classe, Audi.
voiture de classe abstraite{
abstract void run();
}
la classe Audi4 étend le vélo{
void run(){System.out.println("fonctionne bien");}
public static void main(String args[]){
Voiture obj = nouvelle Audi4();
obj.run();
}
}
La sortie du programme sera "en cours d'exécution".
Dans la plupart des cas, la classe d'implémentation reste inconnue (abstraction de données) et un objet de la classe d'implémentation est obtenu via la méthode de fabrique.
Une méthode qui renvoie l'instance de classe est appelée méthode de fabrique.
Exemple de classe abstraite Java avec la méthode Factory
Dans l'exemple suivant, créant l'instance d'une classe square, la méthode draw() de la classe Square est lancée.
forme de classe abstraite{
abstract void draw();
}
// Dans un scénario réel, la mise en œuvre est fournie par d'autres, c'est-à-dire inconnue de l'utilisateur final
la classe Carré étend la forme{
void draw(){System.out.println(“drawing Square”);}
}
la classe Circle1 étend la forme{
void draw(){System.out.println("dessin hexagone");}
}
// Dans un scénario réel, la méthode est appelée par le programmeur ou l'utilisateur
classe TestAbstraction1{
public static void main(String args[]){
Shape s=new Circle1();//Dans un scénario réel, l'objet est fourni via la méthode, par exemple, la méthode getShape()
s. draw();
}
}
La sortie du programme ci-dessus sera "dessiner l'hexagone".
Cours et articles populaires sur le génie logiciel
Programmes populaires | |||
Programme exécutif PG en développement de logiciels - IIIT B | Programme de certificat Blockchain - PURDUE | Programme de certificat de cybersécurité - PURDUE | MSC en informatique - IIIT B |
Autres articles populaires | |||
Salaire d'ingénieur cloud aux États-Unis 2021-22 | Salaire d'AWS Solution Architect aux États-Unis | Salaire d'un développeur backend aux États-Unis | Salaire de développeur front-end aux États-Unis |
Salaire de développeur web aux Etats-Unis | Questions d'entretien de Scrum Master en 2022 | Comment démarrer une carrière dans la cybersécurité en 2022 ? | Options de carrière aux États-Unis pour les étudiants en génie |
Quand une classe abstraite doit-elle être utilisée en Java ?
Voici quelques scénarios où une classe abstraite peut être utilisée :
- Lorsque vous tentez d'introduire le concept d'héritage dans le code (pour partager du code entre différentes classes pertinentes) en utilisant les méthodes courantes d'une classe de base.
- Lorsque les exigences sont spécifiques et que les détails de mise en œuvre sont incomplets.
- Lorsque les classes utilisées pour étendre une classe abstraite ont plusieurs champs ou méthodes communs nécessitant des modificateurs non publics.
- Lorsque des méthodes non finales ou non statiques sont utilisées pour modifier l'état de l'objet.
Quand utiliser une interface en Java pour l'abstraction ?
Les scénarios suivants nécessitent une interface Java pour réaliser l'abstraction :
- Pour prendre en charge les fonctionnalités d'héritages multiples
- Pour obtenir un couplage lâche
Déclarer une interface
L'interface doit être déclarée uniquement par le mot-clé interface. Il en résulte une abstraction totale de sorte que toutes les méthodes d'héritage sont déclarées dans un corps vide et que tous les champs deviennent publics, statiques et finals par défaut. La classe implémentant l'interface doit implémenter toutes les méthodes déclarées dans l'interface.
Exemple d'interface Java
Dans l'exemple ci-dessous, l'interface imprimable n'a qu'une seule méthode dont l'implémentation est fournie dans la classe A6.
interface imprimable{
annuler impression();
}
classe A6 implémente imprimable{
public void print(){System.out.println("Bienvenue");}
public static void main(String args[]){
A6 obj = nouveau A6();
obj.print();
}
}
La sortie du programme sera
Accueillir.
Exemple 2 :
banque d'interface{
float rateOfInterest();
}
classe BOI implémente la Banque {
public float rateOfInterest(){retour 8.5f;}
}
classe CUB implémente Bank{
public float rateOfInterest(){retour 9.2f;}
}
classe TestInterface2{
public static void main(String[] args){
Banque b=nouveau BOI();
System.out.println(“ROI: “+b.rateOfInterest());
}}
La sortie du programme ci-dessus sera
RSI : 8,5
Avantages de l'abstraction en Java
- Couplage lâche : L'abstraction en Java aide au couplage lâche en atténuant les entités dépendantes à un niveau exponentiel.
- Codes réutilisables : la classe abstraite en Java est un gain de temps considérable. La méthode abstraite ne peut être appelée que lorsque cela est nécessaire. La classe abstraite évite de réécrire les mêmes codes, ce qui permet de gagner du temps.
- Protection des données : l'abstraction des données dans Java aide à dissimuler les détails sensibles du code aux utilisateurs. Il aide à masquer les fonctionnalités importantes du projet et à afficher uniquement les composants essentiels.
- Résolution plus rapide des problèmes : avec l'aide de la méthode de résolution dynamique, divers problèmes et complications peuvent être résolus en engageant une seule méthode abstraite.
Pour en savoir plus sur l'abstraction de données dans Java et le développement de logiciels, inscrivez- vous au programme d'études supérieures en développement de logiciels proposé par IIIT Bangalore en association avec upGrad.
Le programme exécutif de troisième cycle en développement de logiciels est un programme en ligne de 13 mois. Le programme est spécialement conçu pour que les professionnels qui travaillent se concentrent sur l'apprentissage sans abandonner leur travail. Le programme comprend des projets basés sur l'industrie et des études de cas. De plus, le programme comprend plus de 10 sessions en direct d'experts de l'industrie pour aider les candidats à se tenir au courant des tendances actuelles de l'industrie.
Peut-on avoir une classe abstraite sans aucune méthode abstraite ?
Oui. Il est possible d'avoir une classe abstraite sans aucune méthode abstraite puisqu'il s'agit de deux techniques indépendantes. Déclarer une classe abstraite implique qu'elle ne peut pas être instanciée seule et ne peut se faire qu'à l'aide d'une sous-classe. Définir une méthode abstraite signifie que la méthode est définie ou contenue dans la sous-classe.
Pourquoi l'abstraction de données est-elle essentielle ?
Oui. Il est possible d'avoir une classe abstraite sans aucune méthode abstraite puisqu'il s'agit de deux techniques indépendantes. Déclarer une classe abstraite implique qu'elle ne peut pas être instanciée seule et ne peut se faire qu'à l'aide d'une sous-classe. Définir une méthode abstraite signifie que la méthode est définie ou contenue dans la sous-classe.
En quoi l'abstraction de données est-elle différente de l'abstraction de contrôle ?
L'abstraction de données est le processus de création de types de données complexes et compliqués, mais ne mettant en évidence ou ne révélant que les détails essentiels. L'abstraction de contrôle est le processus qui traite de la partie logicielle de l'abstraction. C'est le processus où le programme est décomposé ou simplifié, et les détails indésirables des exécutions du programme sont cachés. L'abstraction de contrôle est principalement utilisée pour générer de nouvelles fonctionnalités et fusionner diverses instructions de contrôle en une seule entité.