//早餐
public abstract class Breakfast {
public abstract int Cost();
}
//主食-吐司
public class Toast: Breakfast
{
public Toast() {
}
public override int Cost()
{
return 10;
}
}
//配料-起司
public class Cheese : Breakfast
{
private Breakfast _breakfast;
public Cheese(Breakfast breakfast)
{
_breakfast = breakfast;
}
public override int Cost()
{
return 20 + _breakfast.Cost(); ;
}
}
//配料-火腿
public class Ham : Breakfast
{
private Breakfast _breakfast;
public Ham(Breakfast breakfast)
{
_breakfast = breakfast;
}
public override int Cost()
{
return 15+ _breakfast.Cost();
}
}
private void Main()
{
Breakfast b = new Toast();
b = new Ham(b);
b = new Cheese(b);
Console.WriteLine( "價錢 :"+ b.Cost().ToString());
}