我是PHP新手。我有三个类,例如A
,B
和C
,其中B
和C
直接继承自A
。我的问题是,我需要一个静态工厂,例如为createInstance()
类定义的[[once A
,并且适用于其所有后代。因此,当有人调用A::createInstance()
时,它将返回A
类型的对象,而调用B::createInstance()
时将返回B
的实例,而C::createInstance()
将返回C
的实例。我将以下代码放在类createInstance()
中的A
定义中:
public static function createInstance() {
return new self();
}
但是那不是我需要的解决方案,因为self
始终引用类A
,无论调用什么类。换句话说,调用B::createInstance()
和C::createInstance
总是返回类型为A
的对象。如何创建这样的工厂方法来返回适当类的对象?
static
关键字: