ここではを検索しました。私は検索しましたが、私がしようとしていることの正確な用語を知らないのですか?既に尋ねられているなら私を攻撃しないでください。私に正しい方向を向けると、私は読むでしょう。Objective-C、ivarsをサブクラスとメソッドに適切に継承することに問題がある
I、クラスを有する:(NSObjectのうち)
"形状" "形状" の
サブクラスは:
"円" など - それぞれの石灰沈着(面積計算)の方法とそれぞれ。
私のサブクラスは、個人がアイバーズ「形状」で(使用して「形」メソッドを設定し、それらを継承し、それらを使用して面積を計算するために、クラス「サークル」を取得して素晴らしい仕事
私が何をしたいのか:。 私は "Shape"オブジェクトのパラメータを設定できるようにしたいので、これらのパラメータを2つのパラメータを入力できるように、それぞれのサブクラス( "Circle"、 "Triangle"など)私のすべての私の領域と各サブクラスからの円周計算。サブクラスメソッドのそれぞれは、例えば、同じ "calcArea"と同じです。理論:
-Bruteは、メインメソッドで2つの変数を使って各サブクラスの各パラメータをリセットします。 これは本当に非効率なようですが、動作します。
- "id"を使用すると、基本的にこのオブジェクトは各サブクラスを通じて "Shape"のパラメータを作成し、すべてのサブクラスが終了するまでループします。何かを試して、それを把握することはできません。
"Shape"のオブジェクトを作成して、そのサブクラスの各機能を実行します。これは私が読んだものから悪いと思うので、スーパークラスはそのサブクラスのことを知りません。 [myCircle calcArea]と[myTriangle calcArea]を実行する "Shape"では?
- 私はこのプログラムを間違って設計しています。
ご協力いただきありがとうございます。
私はあなたを正しく理解しているので、スーパークラスでメソッドを作成してから、スーパークラスで実際に定義して開始することができます。 - それは私には完璧な意味を持っていますが、このインスタンスではIDはどのように機能しますか? "param"を変数として正しいクラスを開始しているようですか?どのようにそれを主な機能でコード化すべきですか? – thattookawhile
idはオブジェクトの内部構造へのポインタです。あなたはidについて何も心配するべきではありません - それはランタイムシステムによって内部的に使用されます。 – Max
どのような主な機能ですか? – Max