initメソッドが初期化を行う前にスーパークラスによってオブジェクトが適切に初期化されることを保証するために、イニシャライザパターン以外の目的は何ですか?obj-cでのinitパターンの目的とその使用
なぜこれが必要ですか?
と
我々は他の人が代わりにスーパークラス初期化子の専用初期化子を呼び出すshoudなぜ、複数の初期化メソッドを持つクラスを持っていますか?
私はJavaのバックグラウンドから来ているので、これを完全に理解していない - Javaで一致する可能性が最も近いのはシングルトンパターンだが、専用のイニシャライザを呼び出している他の人は、javaのように選択肢があるむしろあなたは "すべき"です。
その初期化子呼び出しているsuper
クラスは、そのクラスの、必ずしもインスタンスを任意の種類のオブジェクトを返すことができるので、いずれかは、THX
thxその情報のために、これは私に3の好奇心を吹き飛ばしたと思います 1)は、obj cのメソッドの静的なfinalということはありませんか? 2)すべてのNxxxメソッドは、独自の機能を実装するすべての子クラスでオーバーライドできますか? 3)obj cはC++のような多重継承を許しますか?またはそのより多くの単一継承。 – codejunkie
@RedMan 1. 'static final'がオーバーライドできない場合、objective-cはそれを欠いています(それはObjective Cのコンセプトです。サードパーティのクラスのすべてのメソッドをオーバーライドすることができます)。 (クラスはそのクラスをオーバーライドすることが合理的である場合)およびカテゴリ(カテゴリはちょうど "パッチ"、追加および再実装されたクラスメソッドのセットです)でオーバーライドされます3.多重継承はありませんが、メッセージの転送は、助けになる可能性があります。 – iHunter
java/objの情報のためのthxプロトコルは何ですか?あなたが述べたようにJavaインターフェイスと同じですか?メッセージ転送?私は、リンゴdevのdocは、オブジェクトメッセージのすべてを同じもののビットを渡すとしてこれを参照すると思った? 1つの事は私にたくさんのbafels合成はそこにJavaのこれに近い比較ですか? – codejunkie