可能重复:
创建新实例的类方法
我觉得我错过了一些重要的东西。我正在为矩阵代数创建一个矩阵类作为抽象超类,该矩阵中的条目作为其子类具有不同的可能性。我的超类被称为Matrix
,我的子类被称为FractionMatrix
,其中的条目是Fraction
对象。所以我有这个方便的构造函数:
+ (Matrix *)matrix { // creates an empty matrix object
return [[Matrix alloc] init];
}
如果在我的代码中[FractionMatrix matrix]
,我会得到一个Matrix
对象而不是一个FractionMatrix
对象。有什么方法可以编写这个方法,这样我就不需要在子类中重写它——self
本质上是一个类?
虽然在这个非常简单的情况下,简单地覆盖该方法并不是很多工作,但还有更多实质性的方法,覆盖将代表无意义的代码重复。