如果我有:
abstract class AbstractSingleton
{
protected static $instance;
public static function & getInstance()
{
if(null === static::$instance) static::$instance = new static();
return static::$instance;
}
protected function __construct() { }
}
扩展类的用户可以重新定义 的可见性__construct
吗?
class Singleton extends AbstractSingleton
{
public function __construct() { } // That would be a problem
}
第二个问题,如果__construct
在 AbstractSingleton 中将子类定义为私有,会发生什么情况?根本就没有构造函数吗?是否为类提供了一个新的默认构造函数,如果是,具有什么可见性?