Objective-c-inheritance
提供:Dev Guides
Objective-Cの継承
オブジェクト指向プログラミングで最も重要な概念の1つは、継承の概念です。 継承を使用すると、別のクラスの観点からクラスを定義でき、アプリケーションの作成と保守が容易になります。 これにより、コード機能を再利用して実装時間を短縮することもできます。
クラスを作成するとき、プログラマは完全に新しいデータメンバーとメンバー関数を記述する代わりに、新しいクラスが既存のクラスのメンバーを継承するように指定できます。 この既存のクラスは base クラスと呼ばれ、新しいクラスは derived クラスと呼ばれます。
継承の概念は、 is a 関係を実装します。 たとえば、哺乳類IS-A動物、犬IS-A哺乳類、したがって犬IS-A動物などです。
基本クラスと派生クラス
Objective-Cでは、マルチレベルの継承のみが許可されます。つまり、ベースクラスは1つしか持てませんが、マルチレベルの継承は許可されます。 Objective-Cのすべてのクラスは、スーパークラス NSObject から派生しています。
次のように、基本クラス Person とその派生クラス Employee を考えます-
上記のコードをコンパイルして実行すると、次の結果が生成されます-
アクセス制御と継承
派生クラスは、インターフェイスクラスで定義されている場合、その基本クラスのすべてのプライベートメンバーにアクセスできますが、実装ファイルで定義されているプライベートメンバーにはアクセスできません。
私たちは、次の方法でそれらにアクセスできる人に応じてさまざまなアクセスタイプを要約することができます-
派生クラスは、次の例外を除き、すべての基本クラスのメソッドと変数を継承します-
- 拡張機能を使用して実装ファイルで宣言された変数にはアクセスできません。
- 拡張機能を使用して実装ファイルで宣言されたメソッドにはアクセスできません。
- 継承されたクラスが基本クラスのメソッドを実装する場合、派生クラスのメソッドが実行されます。