Menu
Coddy logo textTech

Riepilogo - Gerarchia dei dipendenti

Fa parte della sezione Programmazione orientata agli oggetti del percorso Dart di Coddy. Lezione 42 di 110.

challenge icon

Sfida

Facile

Costruiamo un sistema completo di gerarchia dei dipendenti che riunisca tutti i concetti di ereditarietà di questo capitolo. Creerai una classe base per i dipendenti e la estenderai con ruoli specializzati, ognuno con comportamenti unici.

Organizzerai il codice in due file:

  • employee.dart: definisci qui la gerarchia dei dipendenti:
    • Una classe base Employee con le proprietà String name, double salary e int id. Includi un costruttore e un metodo getDetails() che restituisce '[name] (ID: [id]) - Salary: $[salary]'
    • Una classe Manager che estende Employee e aggiunge la proprietà int teamSize. Usa i parametri super per i campi ereditati. Esegui l'override di getDetails() in modo che restituisca i dettagli della classe genitore seguiti da ', Team: [teamSize] members'
    • Una classe Developer che estende Employee e aggiunge la proprietà String language. Esegui l'override di getDetails() in modo che restituisca i dettagli della classe genitore seguiti da ', Specializes in [language]'
    • Una classe TeamLead che estende Developer e aggiunge la proprietà int projectCount. Esegui l'override di getDetails() per basarti sulla versione di Developer, aggiungendo ', Leading [projectCount] projects'
  • main.dart: importa il file dei dipendenti e crea istanze di ciascun tipo di dipendente:
    • Crea un Employee con nome 'Alice', stipendio 50000.0 e ID 101
    • Crea un Manager con nome 'Bob', stipendio 75000.0, ID 102 e teamSize 8
    • Crea un Developer con nome 'Carol', stipendio 65000.0, ID 103 e language 'Dart'
    • Crea un TeamLead con nome 'David', stipendio 80000.0, ID 104, language 'Python' e projectCount 3
    • Stampa il risultato della chiamata a getDetails() su ciascun dipendente, uno per riga

Nota come TeamLead dimostri l'ereditarietà multilivello: estende Developer, che a sua volta estende Employee. Ogni livello aggiunge i propri dettagli preservando le informazioni delle classi genitore usando super.

Output previsto:

Alice (ID: 101) - Salary: $50000.0
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

Provalo tu

import 'employee.dart';

void main() {
  // TODO: Crea un Employee con name 'Alice', salary 50000.0 e id 101

  // TODO: Crea un Manager con name 'Bob', salary 75000.0, id 102 e teamSize 8

  // TODO: Crea un Developer con name 'Carol', salary 65000.0, id 103 e language 'Dart'

  // TODO: Crea un TeamLead con name 'David', salary 80000.0, id 104, language 'Python' e projectCount 3

  // TODO: Stampa getDetails() per ogni dipendente, uno per riga
}

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore Dart online