Classes abstraites en Java avec exemple
Utilisation de la classe abstraite
En programmation, certaines conditions se produisent dans lesquelles l'utilisateur souhaite définir une super classe qui déclare la structure de l'abstraction donnée sans fournir l'implémentation de la méthode. Dans ce cas, le rôle de la classe abstraite vient. En utilisant cette classe, on peut créer une super classe qui ne définit qu'une forme généralisée qui sera partagée par l'ensemble de sa sous-classe, laissant à chaque sous-classe le soin de remplir son détail.
Selon le dictionnaire, l'abstraction est la qualité de traiter des idées plutôt que des événements.
De même, dans la programmation orientée objet, l'abstraction consiste à cacher l'implémentation de toute fonction à l'utilisateur. Seules les caractéristiques principales des fonctions sont fournies à l'utilisateur. En d'autres termes, l'utilisateur sait "ce que fait l'objet" mais ne sait pas "comment il fonctionne".
Comment implémenter la classe Abstract ?
Une classe abstraite est déclaré à l'aide du mot-clé abstrait. Ces classes ne peuvent pas être instanciées, mais elles peuvent être étendues en sous-classes ou classes dérivées.
Une classe abstraite ne peut pas être directement instancié à l'aide de l'opérateur new, car une classe abstraite n'est pas définie.
Cours abstraits sont les classes qui contiennent au moins une méthode abstraite. Cela signifie que si une classe contient une fonction abstraite, elle doit être déclarée en tant que classe abstraite. C'est-à-dire qu'une classe abstraite peut contenir à la fois des méthodes abstraites et non abstraites.
Propriétés de la classe Abstract
- Cours abstrait contient des méthodes abstraites.
- Cours abstrait ne peut pas être instancié.
- Cours abstrait peut contenir un mélange de méthodes abstraites et non abstraites.
- Pour utiliser une classe abstraite, il faut en hériter d'une autre classe.
- Si le programme contient une méthode abstraite, il doit implémenter toutes les méthodes abstraites de la classe abstraite.
Considérez le programme :
import java.util.*; abstract class Vehical { abstract void get(); abstract void show(); } class Car extends Vehical { Scanner sc=new Scanner(System.in); private long cost; private String name; void get() { System.out.print("Enter the name of car : "); name=sc.nextLine(); System.out.print("Enter the cost of car : "); cost=sc.nextLong(); } void show() { System.out.println("Name of car is : "+name); System.out.println("Cost vo car is : "+cost); } } class Bike extends Vehical { Scanner sc=new Scanner(System.in); private long cost; private String name; void get() { System.out.print("Enter the name of Bike : "); name=sc.nextLine(); System.out.print("Enter the cost of Bike : "); cost=sc.nextLong(); } void show() { System.out.println("Name of bike is : "+name); System.out.println("Cost of bike is : "+cost); } } class ExAbstract { public static void main(String arg[]) { Vehical V; Car C=new Car(); V=C; V.get(); V.show(); Bike B=new Bike(); V=B; V.get(); V.show(); } }
Sortie
First Run: Enter the name of car : Swift Enter the cost of car : 500000 Name of car is : Swift Cost vo car is : 500000 Enter the name of Bike : Pulser Enter the cost of Bike : 75000 Name of bike is : Pulser Cost of bike is : 75000 Second Run: Enter the name of car : Hondacity Enter the cost of car : 1000000 Name of car is : Hondacity Cost vo car is : 1000000 Enter the name of Bike : Starcity Enter the cost of Bike : 65000 Name of bike is : Starcity Cost of bike is : 65000