最初の部分に関しては、はい、サブクラスは、パブリックである限り、そのスーパークラスのプロパティとメソッドを継承します。ゲッターとセッターを取得するためにそれらを合成することを忘れないでください。
したがって、変更できないパブリックプロパティが必要な場合は、次のようにします。
// This returns a copy - whatever the receiver does with it doesn't affect the original
@property (nonatomic, copy) BOOL someVariable;
// This declares the property as only having a getter - no setter
@property (nonatomic, readonly) NSArray *someArray;
特に指定がない限り、ヘッダーファイルで宣言されたプロパティはすべてパブリックと見なされます。プライベートプロパティ、ivar、またはメソッドが必要な場合は、クラス継続カテゴリの実装ファイルでそれらを宣言します。
// In your .m *above* the @implementation MyClass
@interface MyClass()
@property (nonatomic, strong) NSArray *myPrivateModel;
@end
スタンフォードは、ObjectiveCを学ぶために私が本当にお勧めするiTunesUで素晴らしい講義シリーズを行います
お役に立てば幸い