java - 関数 - objective-c 基礎




Objective CでJavaがカテゴリのようなことをすることはできますか? (2)

いいえ、それは本当にとにかくではありません。 Objective Cは動的に型指定されたスコープ付き言語であり、カテゴリなどの機能に非常に適しています。 Javaでこれに最も近いのは、 ASMJavassistようなバイトコード操作ライブラリによるクラスの計測です。

しかし実際には、Javaのような強く型付けされたOO言語を使うときは、別の言語のものを複製しようとするのではなく、その機能を利用するべきです。

以下の状況を考慮してください。

Object > MyClass > MyClassA, MyClassB

たとえば、オブジェクトレベルで何かをしたい場合は、printDetail()を追加しました。 Java実装ではどうしたらいいですか? さらに、私はすべてのオブジェクトのメソッドをオーバーライドすることができます。 たとえば、全く新しい.toString()を使用する必要があります。 ありがとう。


すべてのJavaクラスは最終的にjava.lang.Object持ちjava.lang.Objectこのため、すべてのJava classes inheritObjectからメソッドをJava classes inheritます。 これらのメソッドの半分はfinalあり、 overriddenすることはできません。 ただし、 Object内の他のメソッドをオーバーライドすることも、オーバーライドすることもできます
ObjectクラスのtoString()メソッドは、オブジェクトに関する情報を表示するために使用されます。
だからあなたはあなたの自己に従ってそれを上書きすることができます...
EX ..

public class Test{  
  @Override
  public String toString() {  
  /// staff  
  }  
}




objective-c-category