When a class declares a property in its header, only the accessors for this property are visible to other objects. Non-BNREmployee objects (including subclasses) cannot directly access the instance variables generated by property declarations.
For example, imagine that BNRPerson.h declares this property:
@property (nonatomic) NSMutableArray *friends;
In BNREmployee.m, even though BNREmployee is a subclass of BNRPerson, you cannot access the _friends instance variable:
[_friends addObject:@"Susan"]; // Error!
However, you can use the accessor:
[self.friends addObject:@"Susan"];