0

私の質問は理論的なものです。obj-c で、クラスがプロトコルを実装する場合:

@interface Class:NSObject<protocol>

そして、2 番目のクラスは最初のクラスを継承します。

@interface Class2:Class

Class2 はプロトコルを実装していますか? 複数の実装を持つインターフェイスを作成したいと考えています。実装する必要があるすべてのメソッドを含むプロトコルを実装する親クラスを定義することで、これを行っています。したがって、サブクラスがプロトコルが指示するすべてのメソッドを実装していない場合、親クラスをサブクラス化するプログラマーが警告を受け取ることを望みます。ところで、応答に問題がある場合は、オブジェクト作成用の抽象ファクトリを実装します。

抽象クラスに関するいくつかの投稿を読みましたが、私の質問に対する答えが見つかりませんが、実装に関する他の提案は好評です。

4

1 に答える 1

3

プロトコルは基本的に、クラスが特定のメソッドを実装するという約束です。プロトコルを実装するクラスをサブクラス化すると、サブクラスはスーパークラスのメソッドをすべて継承するため、プロトコルも実装します。

共通のスーパークラスがプロトコルを実装することを宣言すると、プロトコル内のすべてのメソッドの実装を実際に提供していない場合、警告が表示されます。子クラスはこれらすべての実装を継承するため、警告は表示されません。

実際に構築しているものによっては、プロトコルのみを使用して実装する必要があるインターフェイス (メソッド) を定義しますが、共通のスーパークラスは使用しないほうがよい場合があります。次に、プロトコルを実装することを宣言する新しいクラスを作成すると、プロトコルのメソッドのいずれかを実装していないと警告が表示されます。

于 2012-05-16T09:17:00.610 に答える