요약 - 직원 계층 구조
Coddy Dart 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨 — 110개 중 42번째.
챌린지
쉬움이 장의 모든 상속 개념을 하나로 묶는 완전한 직원 계층 시스템을 구축해 보겠습니다. 기본 직원 클래스를 만들고 이를 확장하여 각각 고유한 동작을 가진 전문화된 역할을 만들 것입니다.
코드를 두 개의 파일로 구성합니다:
employee.dart: 여기에 직원 계층을 정의합니다:String name,double salary,int 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가101인Employee를 생성합니다. - 이름이
'Bob', 급여가75000.0, id가102, teamSize가8인Manager를 생성합니다. - 이름이
'Carol', 급여가65000.0, id가103, language가'Dart'인Developer를 생성합니다. - 이름이
'David', 급여가80000.0, id가104, language가'Python', projectCount가3인TeamLead를 생성합니다. - 각 직원에 대해
getDetails()를 호출한 결과를 한 줄에 하나씩 출력합니다.
- 이름이
TeamLead가 다단계 상속을 어떻게 보여주는지 주목하세요. TeamLead는 Developer를 확장하고, Developer는 Employee를 확장합니다. 각 단계는 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()를 한 줄에 하나씩 출력하세요
}