Menu
Coddy logo textTech

Özet - Çalışan Hiyerarşisi

Coddy'nin Dart Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 42 / 110.

challenge icon

Görev

Kolay

Bu bölümdeki tüm kalıtım kavramlarını bir araya getiren eksiksiz bir çalışan hiyerarşisi sistemi oluşturalım. Bir temel çalışan sınıfı oluşturacak ve bunu, her biri kendine özgü davranışlara sahip özel rollerle genişleteceksin.

Kodunu iki dosyada düzenleyeceksin:

  • employee.dart: Çalışan hiyerarşini burada tanımla:
    • Employee, String name ve double salary özelliklerine sahip bir int id temel sınıfı. Bir oluşturucu ve getDetails() döndüren '[name] (ID: [id]) - Salary: $[salary]' metodunu ekle
    • Manager sınıfını genişleten ve bir Employee özelliği ekleyen bir int teamSize sınıfı. Miras alınan alanlar için super parametrelerini kullan. Üst sınıfın ayrıntılarının ardından getDetails() döndürecek şekilde ', Team: [teamSize] members' metodunu geçersiz kıl
    • Developer sınıfını genişleten ve bir Employee özelliği ekleyen bir String language sınıfı. Üst sınıfın ayrıntılarının ardından getDetails() döndürecek şekilde ', Specializes in [language]' metodunu geçersiz kıl
    • TeamLead sınıfını genişleten ve bir Developer özelliği ekleyen bir int projectCount sınıfı. getDetails() sürümünü temel alarak Developer ekleyecek şekilde ', Leading [projectCount] projects' metodunu geçersiz kıl
  • main.dart: Çalışan dosyanı içe aktar ve her çalışan türü için örnekler oluştur:
    • Employee adı, 'Alice' maaşı ve 50000.0 kimliğiyle bir 101 oluştur
    • Manager adı, 'Bob' maaşı, 75000.0 kimliği ve 102 teamSize değeriyle bir 8 oluştur
    • Developer adı, 'Carol' maaşı, 65000.0 kimliği ve 103 language değeriyle bir 'Dart' oluştur
    • TeamLead adı, 'David' maaşı, 80000.0 kimliği, 104 language değeri ve 'Python' projectCount değeriyle bir 3 oluştur
    • Her çalışan üzerinde getDetails() çağrısının sonucunu, her satıra bir tane gelecek şekilde yazdır

TeamLead sınıfının çok düzeyli kalıtımı nasıl gösterdiğine dikkat et: Developer sınıfını, o da Employee sınıfını genişletiyor. Her düzey, super kullanarak üst sınıflardaki bilgileri korurken kendi ayrıntılarını ekliyor.

Beklenen çıktı:

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

Kendin dene

import 'employee.dart';

void main() {
  // TODO: 'Alice' isimli, 50000.0 maaşlı ve id'si 101 olan bir Employee oluşturun

  // TODO: 'Bob' isimli, 75000.0 maaşlı, id'si 102 ve teamSize'ı 8 olan bir Manager oluşturun

  // TODO: 'Carol' isimli, 65000.0 maaşlı, id'si 103 ve language'i 'Dart' olan bir Developer oluşturun

  // TODO: 'David' isimli, 80000.0 maaşlı, id'si 104, language'i 'Python' ve projectCount'u 3 olan bir TeamLead oluşturun

  // TODO: Her bir çalışan için her satıra bir tane gelecek şekilde getDetails() çıktısını yazdırın
}

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online Dart derleyicisi