Last active
June 19, 2022 04:59
-
-
Save CoderNamedHendrick/20e287d73db5821f44bcf7c7953be1b4 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
void main() { | |
Employee emp1 = employee(EmployeeTypes.salesman); | |
print(emp1.type.name); | |
} | |
// Replace Conditional with ploymorphism | |
Employee employee(EmployeeTypes type) { | |
switch (type) { | |
case EmployeeTypes.salesman: | |
return Salesman(); | |
case EmployeeTypes.engineer: | |
default: | |
return Engineer(); | |
} | |
} | |
abstract class Employee { | |
EmployeeTypes get type; | |
} | |
class Salesman implements Employee { | |
@override | |
EmployeeTypes get type => EmployeeTypes.salesman; | |
} | |
class Engineer implements Employee { | |
@override | |
EmployeeTypes get type => EmployeeTypes.engineer; | |
} | |
enum EmployeeTypes { | |
salesman, | |
engineer, | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment