First, as SorenMad pointed out to you in his comment: consider if you really need two separate Classes.
Here's a rough-sketch:
public abstract class Patient
{
public Guid Patient_ID { private set; get; }
public string Patient_Name { set; get; }
public DateTime Patient_Dob { set; get; }
public string Patient_Sex { set; get; }
public Patient(string name, DateTime dob, string sex)
{
Patient_ID = Guid.NewGuid();
Patient_Dob = dob;
Patient_Name = name;
Patient_Sex = sex;
}
}
public class PublicPatient : Patient
{
public PublicPatient(string insurance, string name, DateTime dob, string sex)
: base(name, dob, sex)
{
InsuranceCompany = insurance;
}
public string InsuranceCompany { set; get; }
}
public class PrivatePatient : Patient
{
public PrivatePatient(string billTo, string name, DateTime dob, string sex)
: base(name, dob, sex)
{
BillingAddress = billTo;
}
public string BillingAddress { set; get; }
}
}
Keep in mind that an Abstract Class, in contrast to an Interface, can
optionally implement methods, fields, properties.