Menu
Coddy logo textTech

まとめ:従業員の階層構造

CoddyのDartジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 42/110。

challenge icon

チャレンジ

簡単

この章で学んだすべての継承の概念を統合した、完全な従業員階層システムを構築しましょう。基本となる従業員クラスを作成し、それを拡張して、それぞれ独自の動作を持つ専門的な役割を作成します。

コードを2つのファイルに整理します:

  • employee.dart: ここに従業員の階層を定義します:
    • String namedouble salaryint id プロパティを持つ Employee 基本クラス。コンストラクタと、'[name] (ID: [id]) - Salary: $[salary]' を返す getDetails() メソッドを含めます。
    • Employee を継承し、int teamSize プロパティを追加する Manager クラス。継承されたフィールドには super パラメータを使用します。getDetails() をオーバーライドして、親の詳細の後に ', Team: [teamSize] members' を付けて返すようにします。
    • Employee を継承し、String language プロパティを追加する Developer クラス。getDetails() をオーバーライドして、親の詳細の後に ', Specializes in [language]' を付けて返すようにします。
    • Developer を継承し、int projectCount プロパティを追加する TeamLead クラス。getDetails() をオーバーライドして、Developer のバージョンに基づき、末尾に ', Leading [projectCount] projects' を追加するようにします。
  • main.dart: 従業員ファイルをインポートし、各従業員タイプのインスタンスを作成します:
    • 名前 'Alice'、給与 50000.0、ID 101Employee を作成します。
    • 名前 'Bob'、給与 75000.0、ID 102、チームサイズ 8Manager を作成します。
    • 名前 'Carol'、給与 65000.0、ID 103、言語 'Dart'Developer を作成します。
    • 名前 'David'、給与 80000.0、ID 104、言語 'Python'、プロジェクト数 3TeamLead を作成します。
    • 各従業員に対して getDetails() を呼び出した結果を、1行に1つずつ出力します。

TeamLead がどのように多段階継承(Employee を継承した Developer をさらに継承)を示しているかに注目してください。各レベルで独自の詳細を追加しつつ、super を使用して親クラスからの情報を保持しています。

期待される出力:

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

自分で試してみよう

import 'employee.dart';

void main() {
  // TODO: name が 'Alice'、salary が 50000.0、id が 101 の Employee を作成してください

  // TODO: name が 'Bob'、salary が 75000.0、id が 102、teamSize が 8 の Manager を作成してください

  // TODO: name が 'Carol'、salary が 65000.0、id が 103、language が 'Dart' の Developer を作成してください

  // TODO: name が 'David'、salary が 80000.0、id が 104、language が 'Python'、projectCount が 3 の TeamLead を作成してください

  // TODO: 各従業員の getDetails() を1行ずつ出力してください
}

オブジェクト指向プログラミングのすべてのレッスン