Php物件導向 ? Final類
該類,只能被執行個體化對象不能用於被繼承。
設計時,該類不能再擴充了,就應該通過文法final限制,其他使用者擴充該類。
定義:
在class前,增加final關鍵字。
例子:
class Goods
{
public $goods_name;
public $shop_price;
public function __construct($name,$price)
{
$this->goods_name= $name;
$this->shop_price= $price;
}
}
final class GoodsBook extends Goods
{
public $pages;
public function __construct($name,$price,$pages)
{
parent::__construct($name,$price);
$this->pages= $pages;
}
}
$book1 = new GoodsBook(‘php’,234,56,45);
Final 關鍵字的另一個用法,用於限制方法:
限制該方法,在所屬類被繼承時,該方法不能被重寫。
例子:
class Goods
{
public $goods_name;
public $shop_price;
public function __construct($name,$price)
{
$this->goods_name= $name;
$this->shop_price= $price;
}
public function sayName()
{
echo $this->goods_name;
}
//所有商品輸出價格的方式應該一致
final public function sayPrice() // 繼承該類,該方法不能被重寫
{
echo ‘¥’,$this->shop_price;
}
}
final class GoodsBook extends Goods
{
public $pages;
public function __construct($name,$price,$pages)
{
parent::__construct($name,$price);
$this->pages= $pages;
}
public function sayName()
{
echo“《 $this->goods_name 》”;
}
}
$book1 = new GoodsBook(‘php’,234,56,45);