public static void Main()
Employee[] employees = new Employee[10];
Administrator admin = new Administrator(1000, 0.5);
Engineer engineer = new Engineer(500, 0.3);
Worker worker = new Worker(300, 0.2);
Trainee trainee = new Trainee(200, 0.1);
foreach(Employee employee in employees) {
allSalary += employee.calculateSalary();
Console.WriteLine(allSalary);
abstract class Employee {
public abstract double calculateSalary();
class Administrator : Employee {
public Administrator (double salary, double rate) {
public override double calculateSalary() {
return salary * rate + 100;
class Engineer : Employee {
public Engineer (double salary, double rate) {
public override double calculateSalary() {
return this.salary * this.rate + 50;
class Worker : Employee {
public Worker (double salary, double rate) {
public override double calculateSalary() {
return this.salary * this.rate + 30;
class Trainee : Employee {
public Trainee (double salary, double rate) {
public override double calculateSalary() {
return this.salary * this.rate + 10;