RosettaCodeData/Task/Polymorphic-copy/C-sharp/polymorphic-copy-1.cs

40 lines
514 B
C#

using System;
class T
{
public virtual string Name()
{
return "T";
}
public virtual T Clone()
{
return new T();
}
}
class S : T
{
public override string Name()
{
return "S";
}
public override T Clone()
{
return new S();
}
}
class Program
{
static void Main()
{
T original = new S();
T clone = original.Clone();
Console.WriteLine(original.Name());
Console.WriteLine(clone.Name());
}
}