<?php
abstract class Employee
{
public $rank;
public $profession;
public $isBoss;
abstract function getSalary();
abstract function getCoffeDrunk();
public function __construct($rank, $profession, $isBoss){}
}
class Department
{
private $departaments = array(); // в плане сюда добавить департаменты, с ссылками на сотрудников через метод, но это не точно
public function TotalPaid(){}
public function TotalCofeeDrunk(){}
public function AddWorker(){}
}
class Manager extends Employee
{
public function getSalary(){}
public function getCoffeDrunk(){}
}
class Marketer extends Employee
{
public function getSalary(){}
public function getCoffeDrunk(){}
}
class Engineer extends Employee
{
public function getSalary(){}
public function getCoffeDrunk(){}
}
class Analyst extends Employee
{
public function getSalary(){}
public function getCoffeDrunk(){}
}
PD9waHAKCmVycm9yX3JlcG9ydGluZygtMSk7CgphYnN0cmFjdCBjbGFzcyBFbXBsb3llZQp7CQoJcHVibGljICRyYW5rOwoJcHVibGljICRwcm9mZXNzaW9uOwoJcHVibGljICRpc0Jvc3M7CgkKCWFic3RyYWN0IGZ1bmN0aW9uIGdldFNhbGFyeSgpOwoJYWJzdHJhY3QgZnVuY3Rpb24gZ2V0Q29mZmVEcnVuaygpOwoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRyYW5rLCAkcHJvZmVzc2lvbiwgJGlzQm9zcyl7fQp9CgoKY2xhc3MgRGVwYXJ0bWVudAp7CQoJcHJpdmF0ZSAkZGVwYXJ0YW1lbnRzID0gYXJyYXkoKTsgLy8g0LIg0L/Qu9Cw0L3QtSDRgdGO0LTQsCDQtNC+0LHQsNCy0LjRgtGMINC00LXQv9Cw0YDRgtCw0LzQtdC90YLRiywg0YEg0YHRgdGL0LvQutCw0LzQuCDQvdCwINGB0L7RgtGA0YPQtNC90LjQutC+0LIg0YfQtdGA0LXQtyDQvNC10YLQvtC0LCDQvdC+INGN0YLQviDQvdC1INGC0L7Rh9C90L4KCQoJcHVibGljIGZ1bmN0aW9uIFRvdGFsUGFpZCgpe30KCXB1YmxpYyBmdW5jdGlvbiBUb3RhbENvZmVlRHJ1bmsoKXt9CglwdWJsaWMgZnVuY3Rpb24gQWRkV29ya2VyKCl7fQp9CgoKCmNsYXNzIE1hbmFnZXIgZXh0ZW5kcyBFbXBsb3llZQp7CgkgcHVibGljIGZ1bmN0aW9uIGdldFNhbGFyeSgpe30KCSBwdWJsaWMgZnVuY3Rpb24gZ2V0Q29mZmVEcnVuaygpe30KfQoKCmNsYXNzIE1hcmtldGVyIGV4dGVuZHMgRW1wbG95ZWUKewoJcHVibGljIGZ1bmN0aW9uIGdldFNhbGFyeSgpe30KCXB1YmxpYyBmdW5jdGlvbiBnZXRDb2ZmZURydW5rKCl7fQp9CgoKY2xhc3MgRW5naW5lZXIgZXh0ZW5kcyBFbXBsb3llZQp7CglwdWJsaWMgZnVuY3Rpb24gZ2V0U2FsYXJ5KCl7fQoJcHVibGljIGZ1bmN0aW9uIGdldENvZmZlRHJ1bmsoKXt9Cn0KCgpjbGFzcyBBbmFseXN0IGV4dGVuZHMgRW1wbG95ZWUKewoJcHVibGljIGZ1bmN0aW9uIGdldFNhbGFyeSgpe30KCXB1YmxpYyBmdW5jdGlvbiBnZXRDb2ZmZURydW5rKCl7fQp9