public static void Main()
BaseObject cat = new Cat();
Console.WriteLine(cat.DatabaseTableName);
public abstract class BaseObject
internal abstract string DatabaseTableName { get; }
internal abstract string ObjectType { get; }
public abstract class BaseObject32 : BaseObject
public int Id { get; private set; }
public abstract class BaseObject64 : BaseObject
public long Id { get; private set; }
public class Cat : BaseObject32
internal override string DatabaseTableName => "animals.cat";
internal override string ObjectType => "Cat";