Objective-c-dynamic-binding
提供:Dev Guides
Objective-C動的バインディング
動的バインディングは、コンパイル時ではなく実行時に呼び出すメソッドを決定します。 動的バインディングは、遅延バインディングとも呼ばれます。 Objective-Cでは、すべてのメソッドは実行時に動的に解決されます。 実行される正確なコードは、メソッド名(セレクター)と受信オブジェクトの両方によって決定されます。
動的バインディングにより、ポリモーフィズムが可能になります。 たとえば、RectangleやSquareを含むオブジェクトのコレクションを考えます。 各オブジェクトには、printAreaメソッドの独自の実装があります。
次のコードフラグメントでは、式[anObject printArea]によって実行される実際のコードは実行時に決定されます。 ランタイムシステムは、実行されたメソッドのセレクターを使用して、anObjectのどのクラスでも適切なメソッドを識別します。
動的バインディングを説明する簡単なコードを見てみましょう。
プログラムをコンパイルして実行すると、次の結果が得られます。
上記の例でわかるように、printAreaメソッドは実行時に動的に選択されます。 これは動的バインディングの例であり、同様の種類のオブジェクトを扱う多くの状況で非常に役立ちます。