can anyone explain why we need to use MemberwiseClone() in prototype pattern?
public abstract class AProtagonistEx
{
int m_health;
int m_felony;
double m_money;
// This is a reference type now
AdditionalDetails m_details = new AdditionalDetails();
public int Health
{
get { return m_health; }
set { m_health = value; }
}
public int Felony
{
get { return m_felony; }
set { m_felony = value; }
}
public double Money
{
get { return m_money; }
set { m_money = value; }
}
public AdditionalDetails Details
{
get { return m_details; }
set { m_details = value; }
}
public abstract AProtagonistEx Clone();
}
class CJEx : AProtagonistEx
{
public override AProtagonistEx Clone()
{
**return this.MemberwiseClone() as AProtagonistEx;**
}
}
By default all the properties and methods of the parent class can be access in the child class. then what is the need of this pattern?