getDescription not working
<p>Why in beverage2.getDescription() is Unkown Beverage and beverage3.getDescription() is House Blend Coffe,</p>

<p>but beverage2.cost(), and beverage3.cost() is 1,09</p>

<p>Why polymorphism not working?
I mean why beverage2.getDescription() not called "return this.beverage.getDescription() + ", Mocha";"</p>

<p>I want to get:
beverage2.getDescription() the same result like beverage3.getDescription()</p>

<pre><code> class Program
{
    static void Main(string[] args)
    {

        Beverage beverage2 = new HouseBlend();
        beverage2 = new Mocha(beverage2);
        Console.WriteLine(beverage2.getDescription() + " $" + beverage2.cost());


        var beverage3 = new Mocha(new HouseBlend());
        Console.WriteLine(beverage3.getDescription() + " $" + beverage3.cost());
        Console.ReadKey();
    }
}

public abstract class Beverage
{
    public string description = "Unkown Beverage";

    public string getDescription()
    {
        return description;
    }

    public abstract double cost();
}

public abstract class CondomenentDecorator : Beverage
{
    public abstract string getDescription();
}



public class HouseBlend : Beverage
{
    public HouseBlend()
    {
        description = "House Blend Coffe"; 
    }

    public override double cost()
    {
        return .89;
    }
}

public class Mocha : CondomenentDecorator
{
    Beverage beverage;

    public Mocha(Beverage beverage)
    {
        this.beverage = beverage;
        this.beverage.description = beverage.description;
    }

    public override string getDescription()
    {
        return this.beverage.getDescription() + ", Mocha";
    }

    public override double cost()
    {
        return .20 + beverage.cost();
    }
}
</code></pre>