最近正在看 《learning php设计模式》
,记录一下自己的笔记
须知
- 定义为抽象的类不能被实例化
- 子类必须定义父类中的所有抽象方法
- 抽象类定义了方法的权限,子类实现时权限必须一致
- 同 3,类型,所需参数数量必须一致
- 子类定义了一个可选参数,而父类抽象方法的声明里没有,则两者的声明并无冲突
简单代码示范
/**
* 抽象类
* 如果一个类至少有一个抽象方法,它必然是一个抽象类
* 如果一个类中申明了一个抽象方法,那么继承这个父类的各个子类必须都实现这个方法
*/
// 定义一个抽象类 用 abstract 定义
abstract class AbstractClass{
// PHP 没有抽象属性之说,可以申明一个属性但不指定值,把它当作一个抽象属性
public $storeHere;
// 定义一个抽象函数
abstract public function tick($whatever);
}
// 继承自抽象类
class RunAbstractClass extends AbstractClass{
// 必须实现父类方法
public function tick($whatever){
// 可以使用父类属性 :) 这不废话嘛!这不废话嘛!这不废话嘛!
$this->storeHere = $whatever;
return 'wu wu wu '.$this->storeHere;
}
}
$test = new RunAbstractClass();
echo $test->tick('testing'); // wu wu wu testing