I have a class that subclass from `NSObject` - `Rectangle`, and it subclass - `Square`.

In Rectangle.h i have properties:

```
@property int height, width;

```

Im implementation file i manually declare backing variables:

```
@implementation Rectangle
{
    int _width;
    int _height;
}

```

My question is: in my subclass Square that inherit directly from `Rectangle` - `@interface Square : Rectangle`, i want to use variables declared in superclass. However, i can't see them through `_width` or `_height`, but only calling getter method - `self.width` or `[self setWidth:x]` accordingly.

Yes, there is no problem using getter method, but why i can't use backing variables that are synthesised (in my case declared manually)? Is that somehow protected even from child class?