重複の可能性:
新しいインスタンスを作成するクラス メソッド
大事なものが欠けている気がします。行列代数の行列クラスを抽象スーパークラスとして作成し、その行列のエントリのさまざまな可能性をそのサブクラスとして作成しています。私のスーパークラスは と呼ばれMatrix
、私のサブクラスは と呼ばれFractionMatrix
、エントリはFraction
オブジェクトです。だから私はこの便利なコンストラクターを持っています:
+ (Matrix *)matrix { // creates an empty matrix object
return [[Matrix alloc] init];
}
私のコードで を実行すると、オブジェクトではなくオブジェクト[FractionMatrix matrix]
が取得されます。サブクラスでオーバーライドする必要がないように、このメソッドを作成する方法はありますか?Matrix
FractionMatrix
self
この非常に単純なケースでは、単純にメソッドをオーバーライドするだけでは大した作業ではありませんが、オーバーライドが意味のないコードの重複を表す、より実質的なメソッドがあります。