目的Cのjavaのinterfaceと同等の概念は何ですか?私はインターフェイスを作成し、私のインターフェイスを継承する多くのクラスで共有される共通の変数とメソッドを定義します。外のクラスが子クラスを使用したい場合、正しい子クラスを指す私のインターフェースの参照オブジェクトを取得します。実行時の多態性と継承を実装する
Objective Cでこれを達成する方法は?
目的Cのjavaのinterfaceと同等の概念は何ですか?私はインターフェイスを作成し、私のインターフェイスを継承する多くのクラスで共有される共通の変数とメソッドを定義します。外のクラスが子クラスを使用したい場合、正しい子クラスを指す私のインターフェースの参照オブジェクトを取得します。実行時の多態性と継承を実装する
Objective Cでこれを達成する方法は?
だ、あなたはProtocolsを利用することによってこれを達成することができます。プロトコルは基本的にJavaのインタフェースの先駆けなので、動作のほとんどは自然に行われるはずです。
プロトコルの宣言は以下のようになります。これは、クラスによって実装されてもよい
@protocol Foo
-(void) foo;
-(int) boo: (int) arg;
@end
。以下の場合、MyClassはFooプロトコルに準拠しています。
-(void) someMethod: (id<Foo>) arg;
あなたがオブジェクトについてより具体的にする必要がある場合は、彼らはまた、このように使用することができます:
-(void) someMethod: (NSObject<Foo> *) arg;
を
@interface MyClass <Foo>
{
}
@end
@implementation MyClass
-(void) foo {
//do something
}
-(int) boo: (int) arg {
//do something else
return arg;
}
@end
最後に、あなたはこのようにそれらを周りに渡すことができます