2

David Chisnallによる" Objective-C for Java Programmers, Part 1 " のイントロでは、次のように述べられています。

複数の基本クラスを持つことができるため、Objective-C では、ある種のオブジェクトへのポインターを表す id 型が導入されています。任意のオブジェクト タイプと ID の間で暗黙的にキャストできます。

私の理解では、Objective-C は単一継承です(Java と同じですが、C++ とは異なります)。

では、「複数の基底クラス」とは (このコンテキストで) どういう意味ですか?

4

1 に答える 1

3

これは、独自のルートまたは「ベース」クラスを定義できることを意味します。

@interface MyRootClass
@end

から継承しないことに注意してくださいNSObject

NSObject実際には、これらのクラスはすべて継承された動作を期待しているため、他のシステムAPIと相互運用可能に使用できないため、これが行われることはありません。

idしかし、それは実際にはタイプの背後にある動機ではありません。idタイプは、文字通り、このオブジェクト参照が任意のクラスのインスタンスであることを意味します

複数の基本クラスが存在する可能性があることは、完全に直交しています。

いいえ、実装するNSObject @protocolだけでは十分ではありません。

于 2012-09-28T17:58:58.517 に答える