2

可能重复:
创建新实例的类方法

我觉得我错过了一些重要的东西。我正在为矩阵代数创建一个矩阵类作为抽象超类,该矩阵中的条目作为其子类具有不同的可能性。我的超类被称为Matrix,我的子类被称为FractionMatrix,其中的条目是Fraction对象。所以我有这个方便的构造函数:

+ (Matrix *)matrix { // creates an empty matrix object
    return [[Matrix alloc] init];
}

如果在我的代码中[FractionMatrix matrix],我会得到一个Matrix对象而不是一个FractionMatrix对象。有什么方法可以编写这个方法,这样我就不需要在子类中重写它——self本质上是一个类?

虽然在这个非常简单的情况下,简单地覆盖该方法并不是很多工作,但还有更多实质性的方法,覆盖将代表无意义的代码重复。

4

0 回答 0