If you are not going to inherit the methods of the superclass then you should not use that superclass!
When you inherit it is a 'is a' relationship between the sub and super classes. "Employer is a NSMutableArray" - no, that is not true and thus don't make Employer a subclass of NSMutableArray. Additionally, in the future you might use a dictionary to store employees (like mapping 'name' -> 'employee') and then having the representation being inherited as an array simply won't work.
@interface Employer : NSObject {
NSMutableArray *employees;
}
- (void) addEmployee: (Employee *) employee;
@end
Like such. Now addObject:
isn't workable on instances of Employee; only addEmployee:
works. Additionally, you'll only want to specialize methods like filteredArrayWithPredicate:
eventually - so it won't be an advantage to inherit them.