params Type[]
[ImplemetedBy(typeof(GunDN), typeof(BazookaDN), typeof(MachineGunDN)] IGun gun;
[ImplemetedByAll] // there are too many kinds of weapon in the world to enumerate it... IdentifiableEntity weapon;
[ImplemetedByAll] // there are too many weapons in the world to enumerate it... Lite<IdentifiableEntity> weapon;
public abstract class PersonDN : Entity { string name; (..) } public class SoldierDN : PersonDN { WeaponDN weapon; (..) } public class TeacherDN : PersonDN { BookDN book; (..) }
int NumberOfKilledPeople
idPerson
idSoldier
idTeacher