抽象クラスを作成するときにJavaのバックグラウンドから来て、誰かがそれらを使用し、それらの値でそれらをオーバーライドします:客観的なcで...静的ライブラリで抽象クラスを作成して、誰かが開いてオーバーライドできるようにするにはどうすればよいですか? ありがとう
編集:より具体的には、メソッドにメソッドを実装し、値をオーバーライドして自分で使用するにはどうすればよいですか? これが簡単な場合は申し訳ありませんが、私はJavaバックグラウンドから来ました
抽象クラスを作成するときにJavaのバックグラウンドから来て、誰かがそれらを使用し、それらの値でそれらをオーバーライドします:客観的なcで...静的ライブラリで抽象クラスを作成して、誰かが開いてオーバーライドできるようにするにはどうすればよいですか? ありがとう
編集:より具体的には、メソッドにメソッドを実装し、値をオーバーライドして自分で使用するにはどうすればよいですか? これが簡単な場合は申し訳ありませんが、私はJavaバックグラウンドから来ました
他のいくつかの言語とは異なり、Objective-Cには、クラスを抽象としてマークする構文がなく、抽象クラスのインスタンスを作成できなくなることもありません。
ドキュメントで、サブクラス化することを目的としており、そのように使用することは意図されていないことを単に述べてください。
Cocoaはabstractと呼ばれるものを提供しません。実行時にのみチェックされるクラス抽象を作成できますが、コンパイル時にはチェックされません。
ここに試してみてください:
@interface AbstractClass : NSObject
@end
@implementation AbstractClass
+ (id)alloc{
if (self == [AbstractClass class]) {
NSLog(@"Abstract Class cant be used");
}
return [super alloc];
@end
注:これはコンパイラーによってチェックされません。
私自身 Java のバックグラウンドを持っていたので、Objective-C を使い始めたときも同じことを探していました。これが私の質問に答えていることがわかりました:
簡単に言えば、Objective-C には (少なくとも Java コンテキストでは) 抽象クラスはありません。