Вызвать метод cofee.GetDescription() переопределенный классом Milk - C#
Формулировка задачи:
Помогите, пожалуйста. Хочу вызвать метод cofee.GetDescription() переопределенный классом Milk, но никак не могу это сделать...
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
abstract public class Beverage
{
protected String description = "Unknown";
public virtual string GetDescription()
{
return description;
}
}
public class Espresso : Beverage
{
public Espresso() { description = "Espresso"; }
}
abstract public class CondimentDecorator : Beverage
{
abstract public new string GetDescription();
}
public class Milk : CondimentDecorator
{
Beverage beverage;
public Milk(Beverage beverage)
{
this.beverage = beverage;
}
public override string GetDescription()
{
return beverage.GetDescription() + ", milk";
}
}
class Program
{
static void Main()
{
Beverage cofee = new Espresso();
cofee = new Milk(cofee);
Console.WriteLine(cofee.GetDescription());
Console.ReadKey();
}
}Решение задачи: «Вызвать метод cofee.GetDescription() переопределенный классом Milk»
textual
Листинг программы
public abstract class Beverage
{
public virtual string Description
{
get { return "Unknown beverage";}
private set {}
}
public virtual double Cost { get; private set; }
}
public abstract class CondimentDecorator : Beverage
{
protected Beverage beverage;
}
public class Espresso : Beverage
{
public override string Description
{
get { return "Espresso"; }
private set {}
}
public override double Cost
{
get { return 2.0; }
private set {}
}
}
public class Milk : CondimentDecorator
{
public Milk(Beverage beverage)
{
this.beverage = beverage;
}
public override double Cost
{
get { return 0.2 + beverage.Cost; }
private set {}
}
public override string Description
{
get { return beverage.Description + ", Milk"; }
private set {}
}
}
internal class Program
{
public static void Main(string[] args)
{
Beverage coffee = new Espresso();
CondimentDecorator milkAdd = new Milk(coffee);
Console.WriteLine(milkAdd.Description);
Console.WriteLine(milkAdd.Cost);
}
}