Menu
Coddy logo textTech

Rückblick – Mitarbeiter-Hierarchie

Teil des Abschnitts Objektorientierte Programmierung der Dart-Journey von Coddy — Lektion 42 von 110.

challenge icon

Aufgabe

Einfach

Lassen Sie uns ein vollständiges Mitarbeiter-Hierarchiesystem aufbauen, das alle Vererbungskonzepte aus diesem Kapitel zusammenführt. Sie werden eine Basisklasse für Mitarbeiter erstellen und diese um spezialisierte Rollen erweitern, von denen jede ihr eigenes, einzigartiges Verhalten besitzt.

Sie werden Ihren Code in zwei Dateien organisieren:

  • employee.dart: Definieren Sie hier Ihre Mitarbeiter-Hierarchie:
    • Eine Employee-Basisklasse mit den Eigenschaften String name, double salary und int id. Fügen Sie einen Konstruktor und eine Methode getDetails() hinzu, die '[name] (ID: [id]) - Salary: $[salary]' zurückgibt.
    • Eine Manager-Klasse, die Employee erweitert und eine Eigenschaft int teamSize hinzufügt. Verwenden Sie Super-Parameter für die geerbten Felder. Überschreiben Sie getDetails(), um die Details der Elternklasse zurückzugeben, gefolgt von ', Team: [teamSize] members'.
    • Eine Developer-Klasse, die Employee erweitert und eine Eigenschaft String language hinzufügt. Überschreiben Sie getDetails(), um die Details der Elternklasse zurückzugeben, gefolgt von ', Specializes in [language]'.
    • Eine TeamLead-Klasse, die Developer erweitert und eine Eigenschaft int projectCount hinzufügt. Überschreiben Sie getDetails(), um auf der Version des Developer aufzubauen, indem Sie ', Leading [projectCount] projects' anhängen.
  • main.dart: Importieren Sie Ihre Mitarbeiter-Datei und erstellen Sie Instanzen von jedem Mitarbeitertyp:
    • Erstellen Sie einen Employee mit dem Namen 'Alice', dem Gehalt 50000.0 und der ID 101.
    • Erstellen Sie einen Manager mit dem Namen 'Bob', dem Gehalt 75000.0, der ID 102 und der teamSize 8.
    • Erstellen Sie einen Developer mit dem Namen 'Carol', dem Gehalt 65000.0, der ID 103 und der Sprache 'Dart'.
    • Erstellen Sie einen TeamLead mit dem Namen 'David', dem Gehalt 80000.0, der ID 104, der Sprache 'Python' und dem projectCount 3.
    • Geben Sie das Ergebnis des Aufrufs von getDetails() für jeden Mitarbeiter aus, eine pro Zeile.

Beachten Sie, wie TeamLead eine mehrstufige Vererbung demonstriert – sie erweitert Developer, welche wiederum Employee erweitert. Jede Ebene fügt ihre eigenen Details hinzu, während die Informationen der Elternklassen mithilfe von super erhalten bleiben.

Erwartete Ausgabe:

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

Probier es selbst

import 'employee.dart';

void main() {
  // TODO: Erstellen Sie einen Employee mit dem Namen 'Alice', Gehalt 50000.0 und ID 101

  // TODO: Erstellen Sie einen Manager mit dem Namen 'Bob', Gehalt 75000.0, ID 102 und teamSize 8

  // TODO: Erstellen Sie einen Developer mit dem Namen 'Carol', Gehalt 65000.0, ID 103 und language 'Dart'

  // TODO: Erstellen Sie einen TeamLead mit dem Namen 'David', Gehalt 80000.0, ID 104, language 'Python' und projectCount 3

  // TODO: Geben Sie getDetails() für jeden Mitarbeiter aus, eine pro Zeile
}

Alle Lektionen in Objektorientierte Programmierung