Создать абстрактный класс Worker с полями, задающими фамилию работника - C#
Формулировка задачи:
Создать абстрактный класс Worker с полями, задающими фамилию работника, фамилию руководителя, фамилии подчинённых, и виртуальными методами вывода списка обязанностей и списка подчинённых на экран. На его основе реализовать классы Manager, Developer и Coder. Создать класс Group, содержащий массив объектов этих классов в динамической памяти. Предусмотреть возможность вывода всех объектов списка и выборки по фамилии с выводами всего дерева подчинённых. Написать демонстрационную программу, в которой будут использоваться все методы классов.
Решение задачи: «Создать абстрактный класс Worker с полями, задающими фамилию работника»
textual
Листинг программы
namespace ConsoleWorker
{
abstract class Worker
{
public string LastName;
public Worker(string lastname)
{
LastName = lastname;
}
public abstract string Routine();
public abstract string DependPerson();
}
class Manager : Worker
{
public Manager(string lastname):base(lastname)
{
}
public override string Routine()
{
return String.Format(" Create firm");
}
public override string DependPerson()
{
return String.Format(" Works");
}
}
class Developer : Worker
{
public Developer(string lastname)
: base(lastname)
{
}
public override string Routine()
{
return String.Format(" Create project");
}
public override string DependPerson()
{
return String.Format(" Works");
}
}
class Coder: Worker
{
public Coder(string lastname)
: base(lastname)
{
}
public override string Routine()
{
return String.Format(" Create code");
}
public override string DependPerson()
{
return String.Format(" Works");
}
}
class Program
{
static void Main(string[] args)
{
List<Worker> list = new List<Worker>();
list.Add(new Manager("Vasil"));
list.Add(new Developer("Ivan"));
list.Add(new Coder("Test"));
foreach (var l in list)
{
Console.WriteLine(l.LastName+ " "+ l.Routine()+" " +l.DependPerson());
}
string name = Console.ReadLine();
foreach (var n in list){
if (n.LastName == name)
Console.WriteLine(n.LastName+ " " + n.Routine()+ " "+ n.DependPerson());
}
Console.ReadLine();
}
}
}