В базовом классе:
public virtual string Name { get; set; }
В производных классах:
public override string Name { get; set; }
Однако, если единственное различие между классами состоит в том, что у них разные имена, я бы сказал, что вместо наследования вам следует просто использовать базовый класс с именем, установленным в конструкторе:
, например
public class MyObject
{
public string Name { get; private set; }
public enum ObjectType { TypeA, TypeB, ... }
public MyObject(ObjectType obType)
{
switch (obType)
{
case ObjectType.TypeA:
Name = "Type A";
// and so on
}
}
}