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.

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