2011年11月10日木曜日

継承とクラス

[self]でクラス自身のメソッドを呼び出したとき、上書きされていない継承したメソッドを呼んだとき
スーパークラスのメソッドが呼ばれる。
スーパークラスのメソッド内で[self]でメソッドが呼ばれたとき、スーパークラス内のメソッドが参照されるのではなく、自分のクラスのメソッドが呼ばれる(オーバーライドされたものが呼ばれる)


実装手順
ヘッダーファイルにインターフェースを書く
mファイルに実処理を@implementation以下にインターフェースに対応した処理を書いていく

実行プログラム上で書いた処理の呼び出しを行う
@interface
-変数やクラス名定義
@implementation
-色々処理
int main(void)
{
id x = [[newinstance alloc] init];//インスタンス生成
[x method1];//インスタンスのメソッド呼び出し
}
外部からのメッセージで動くメソッドの場合はinterface部分にメソッド名を定義する必要があるが
そのクラス内部でしか使わない内部用のメソッドの場合はインターフェースは書かなくてもよい。
[self]で呼び出してつかったりする。
例)カウンターアプリでダウンアップそれぞれメソッドを作るが、アップダウンと同時に音を鳴らせる場合、内部で音を鳴らせるメソッドを作成し、[self]で呼び出すなど
この場合、最初の部分に定義する必要がある([self]で呼び出される前に定義)

No response to “継承とクラス”

Leave a Reply