動的バインディング
動的バインディングは、コンパイル時ではなく、実行時に呼び出すメソッドを決定することです。動的バインディングは別名遅延バインディングと呼ばれています。Objective-C では、すべてのメソッドは、実行時に動的に解決されます。実行される正確なコードは、メソッド名(セレクタ) と受信側オブジェクトの両方によって決定されます。
動的バインディングは、ポリモーフィズムを可能にします。たとえば、Dog、Athlete、そして ComputerSimulation を含むオブジェクトのコレクションを考えてみてください。各オブジェクトは、run メソッドを独自に実装しています。以下の部分コードで、式 [anObject run] で実行される実際のコードは、実行時に決定されます。実行時のシステムは、anObject のクラスがあることが何であるにせよ、適切なメソッドを識別するために、メソッド run のセレクタを使用し実行します。
NSArray *anArray = [NSArray arrayWithObjects:aDog, anAthlete, aComputerSimulation, nil]; id anObject = [anArray objectAtIndex:(random()/pow(2, 31)*3)]; [anObject run];
この例では、Objective-C がいかにダイナミックかを示し、この機能はココアで普遍的に使用されています。
前提条件の記事
関連記事
(なし)
既出の議論
オブジェクトでの作業
次の章
前の章