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);
推荐阅读
-
Python面向对象编程中关于类和方法的学习笔记
-
PHP面向对象教程之自定义类
-
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
-
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
-
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
-
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
-
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
-
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
-
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
-
PHP 面向对象程序设计(oop)学习笔记 (五) - PHP 命名空间