Une classe abstraite est une classe qui ne peut pas être instanciée et qui contient une ou plusieurs méthodes abstraites. Cependant, ces méthodes abstraites sont déclarées sans aucun code.

Les classes enfants qui héritent de la classe abstraite doivent contenir des implémentations de toutes les méthodes abstraites. Nous pouvons instancier des objet à partir d’une classe enfant.

Pour déclarer des classes abstraites dans Dart, nous utilisons le mot-clé Abstract.

classe abstraite

Les méthodes non abstraites peuvent également être définies dans des classes abstraites , Ces méthodes peuvent être appelées par des sous-classes.

Donc, l’abstraction est le processus par lequel nous définissons une classe et ses caractéristiques essentielles, laissant l’implémentation à ses classes enfants.

Cela vous aide à organiser votre code et à vous assurer qu’une classe spécifique contient les fonctions et les variables nécessaires. De plus, vous pouvez segmenter une classe de sorte qu’un objet ne puisse utiliser que les fonctions dont il a besoin.

abstract class Personnel{
     salaire(); // méthode abstraite
     prime(); // méthode abstraite
  
     info(){
         print('Une méthode normale dans une classe abstraite.');
  }
}

// Les classes enfants 
 class Manager extends Personnel{ 
  @override
  salaire() {
           print("Le salaire d'un manager est de EUR 3000");
  }
 
  @override
  prime() {
    
       print("La prime d'un manager est de EUR 500");
  } 
}
class Programmeur extends Personnel{
  @override
  salaire() {
    
       print("Le salaire d'un programmeur est de EUR 2000");
  }
 
  @override
  prime() {
    
       print("La prime d'un programmeur est de EUR 300");
  }
 
}
 
main(){
 
  Manager d = Manager();
  d.salaire();
  d.info();
  
  print("===========================================");
 
  Programmeur c = Programmeur();
  c.salaire();
  c.prime();
  
  print("");
  
  print("Nous pouvons utiliser la classe abstraite dans la définition du type de l'objet");
  Personnel e = Programmeur();
  e.salaire();
 
  // les classes abstraites ne peuvent pas être instanciées directement  
  // Personnel a= Personnel(); // enlevez le commentaire
}

Expliquons notre code

Personnel est une classe abstraite avec deux méthodes abstraites salaire() et prime().
La classe abstraite peut contenir une méthode normale, dans notre cas info().
Les classes Manager et Programmeur héritent de la classe Personnel.
Par conséquent, nous devons implémenter les méthodes abstraites dans les classes enfants.
Cependant, info() n’est pas une méthode abstraite. Il n’est pas nécessaire de la réécrire dans les sous-classes.

L’exécution du code.

Le salaire d‘un manager est de EUR 3000
Une méthode normale dans une classe abstraite.
===========================================
Le salaire d‘un programmeur est de EUR 2000
La prime d‘un programmeur est de EUR 300

Nous pouvons utiliser la classe abstraite dans la définition du type
Le salaire d‘un programmeur est de EUR 2000

Catégories : Non classé

0 commentaire

Laisser un commentaire

Emplacement de l’avatar

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *