1

抽象クラスを作成するときにJavaのバックグラウンドから来て、誰かがそれらを使用し、それらの値でそれらをオーバーライドします:客観的なcで...静的ライブラリで抽象クラスを作成して、誰かが開いてオーバーライドできるようにするにはどうすればよいですか? ありがとう

編集:より具体的には、メソッドにメソッドを実装し、値をオーバーライドして自分で使用するにはどうすればよいですか? これが簡単な場合は申し訳ありませんが、私はJavaバックグラウンドから来ました

4

3 に答える 3

1

他のいくつかの言語とは異なり、Objective-Cには、クラスを抽象としてマークする構文がなく、抽象クラスのインスタンスを作成できなくなることもありません。

ドキュメントで、サブクラス化することを目的としており、そのように使用することは意図されていないことを単に述べてください。

于 2013-02-28T15:27:10.073 に答える
1

Cocoaはabstractと呼ばれるものを提供しません。実行時にのみチェックされるクラス抽象を作成できますが、コンパイル時にはチェックされません。

ここに試してみてください:

@interface AbstractClass : NSObject
@end

@implementation AbstractClass
+ (id)alloc{
    if (self == [AbstractClass class]) {
        NSLog(@"Abstract Class cant be used");
    }
    return [super alloc];
@end

注:これはコンパイラーによってチェックされません。

于 2013-02-28T15:27:30.573 に答える
1

私自身 Java のバックグラウンドを持っていたので、Objective-C を使い始めたときも同じことを探していました。これが私の質問に答えていることがわかりました:

Objective-C で抽象クラスを作成する

簡単に言えば、Objective-C には (少なくとも Java コンテキストでは) 抽象クラスはありません。

于 2013-02-28T15:30:17.497 に答える