static class Program
{
static void Main()
{
员工 员工 = new 普通员工();
员工 主管 = new 员工主管();
员工 boss = new BOSS();
员工.设置上级(主管);
主管.设置上级(boss);
快递包裹 包裹 = new 快递包裹();
包裹.价值 = 80040;
员工.收取快递(包裹);
Console.ReadKey();
}
}
abstract class 员工
{
protected 员工 上级;
public void 设置上级(员工 员工)
{
this.上级 = 员工;
}
public abstract void 收取快递(快递包裹 包裹);
}
class 普通员工 : 员工
{
public override void 收取快递(快递包裹 包裹)
{
if (包裹.价值 < 50)
{
Console.WriteLine("这么没价值的我等小虾签收了");
包裹.签收();
}
else
{
上级.收取快递(包裹);
}
}
}
class 员工主管 : 员工
{
public override void 收取快递(快递包裹 包裹)
{
if (包裹.价值 < 500)
{
Console.WriteLine("还没500块的我签收了");
包裹.签收();
}
else
{
上级.收取快递(包裹);
}
}
}
class BOSS : 员工
{
public override void 收取快递(快递包裹 包裹)
{
Console.WriteLine("多少钱的我都能收");
包裹.签收();
}
}
class 快递包裹
{
public int 价值 { get; set; }
public void 签收()
{
Console.WriteLine("签收完毕,下班!");
}
}