php 设计模式 之 abstract 抽象类简介

最近正在看 《learning php设计模式》,记录一下自己的笔记

须知

  1. 定义为抽象的类不能被实例化
  2. 子类必须定义父类中的所有抽象方法
  3. 抽象类定义了方法的权限,子类实现时权限必须一致
  4. 同 3,类型,所需参数数量必须一致
  5. 子类定义了一个可选参数,而父类抽象方法的声明里没有,则两者的声明并无冲突

简单代码示范


/** * 抽象类 * 如果一个类至少有一个抽象方法,它必然是一个抽象类 * 如果一个类中申明了一个抽象方法,那么继承这个父类的各个子类必须都实现这个方法 */ // 定义一个抽象类 用 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

你可能感兴趣的:(php,abstract)