/***
单例如何防止被继承时破坏?
答:解决思路,使类不能被继承,或者继承是不能被重写.
如何实现?
答: final关键字
final 有最终,最后的意思.
final 放在类名前面,则该类不允许被继承
final 放在方法前面时,则该方法不能被重写.
final 放在属性前面时, 不能这样放! final只能放在类和方法前面,不能放属性前.
***/
class mysql {
private $id;
private static $ins = false;
public $age = 22;
final protected function __construct() {
$this->id = rand(1,10000);
}
final protected function __clone() {
}
public static function getIns() {
// return new self();
if(self::$ins === false) {
self::$ins = new self();
}
return self::$ins;
}
}
class db extends mysql {
public function __construct() {
}
public function __clone() {
}
}