There is a basic abstract class Subj:
public abstract class Subj
{
public IName name;
public string ID { get; set; }
//other members of the class
}
It has 2 derived classes: Company and Person:
public class Company : Subj
{
//realise interface IName
public new IName name = new NameCompany();
}
public class Person : Subj
{
//realise interface IName
public new IName name = new NamePerson();
}
There is also Client class that expand functionality of Subj
public class Client : Subj
{
//Client functionality
//Gets folder name for a client
public string foldername()
{
}
//The list of Legal cases
private List<LCase> _cases = new List<LCase> { };
}
The problem is, Subj must be realised as either Company or Person and then it may or may not be "expanded" into Client, which brings me to inheriting Client from Company and Person, but multiple inheritance is prohibited, how do I solve this problem?