Menu
Coddy logo textTech

Récapitulatif - Hiérarchie des employés

Fait partie de la section Programmation Orientée Objet du Journey Dart de Coddy — leçon 42 sur 110.

challenge icon

Défi

Facile

Construisons un système complet de hiérarchie d'employés qui rassemble tous les concepts d'héritage de ce chapitre. Vous allez créer une classe de base pour les employés et l'étendre avec des rôles spécialisés, chacun ayant ses propres comportements uniques.

Vous organiserez votre code en deux fichiers :

  • employee.dart : Définissez votre hiérarchie d'employés ici :
    • Une classe de base Employee avec les propriétés String name, double salary, et int id. Incluez un constructeur et une méthode getDetails() qui retourne '[name] (ID: [id]) - Salary: $[salary]'
    • Une classe Manager qui étend Employee et ajoute une propriété int teamSize. Utilisez les paramètres super pour les champs hérités. Surchargez getDetails() pour retourner les détails du parent suivis de ', Team: [teamSize] members'
    • Une classe Developer qui étend Employee et ajoute une propriété String language. Surchargez getDetails() pour retourner les détails du parent suivis de ', Specializes in [language]'
    • Une classe TeamLead qui étend Developer et ajoute une propriété int projectCount. Surchargez getDetails() pour s'appuyer sur la version de Developer en ajoutant ', Leading [projectCount] projects'
  • main.dart : Importez votre fichier d'employés et créez des instances de chaque type d'employé :
    • Créez un Employee avec le nom 'Alice', le salaire 50000.0, et l'id 101
    • Créez un Manager avec le nom 'Bob', le salaire 75000.0, l'id 102, et teamSize 8
    • Créez un Developer avec le nom 'Carol', le salaire 65000.0, l'id 103, et language 'Dart'
    • Créez un TeamLead avec le nom 'David', le salaire 80000.0, l'id 104, language 'Python', et projectCount 3
    • Affichez le résultat de l'appel à getDetails() sur chaque employé, un par ligne

Remarquez comment TeamLead démontre l'héritage multi-niveaux - il étend Developer, qui lui-même étend Employee. Chaque niveau ajoute ses propres détails tout en préservant les informations des classes parentes en utilisant super.

Sortie attendue :

Alice (ID: 101) - Salary: $50000.0, Team: 8 members
Bob (ID: 102) - Salary: $75000.0, Team: 8 members
Carol (ID: 103) - Salary: $65000.0, Specializes in Dart
David (ID: 104) - Salary: $80000.0, Specializes in Python, Leading 3 projects

Essayez vous-même

import 'employee.dart';

void main() {
  // TODO: Créer un Employee avec le name 'Alice', le salary 50000.0, et l'id 101

  // TODO: Créer un Manager avec le name 'Bob', le salary 75000.0, l'id 102, et le teamSize 8

  // TODO: Créer un Developer avec le name 'Carol', le salary 65000.0, l'id 103, et le language 'Dart'

  // TODO: Créer un TeamLead avec le name 'David', le salary 80000.0, l'id 104, le language 'Python', et le projectCount 3

  // TODO: Afficher getDetails() pour chaque employé, un par ligne
}

Toutes les leçons de Programmation Orientée Objet