PHP 抽象类 发表于 2016-12-02 | 更新于 2018-11-11 | 分类于 PHP , OOP | 评论数: | 阅读次数: 使用 abstract 关键字申明抽象类和抽象方法。抽象类不能被实例化,只能被其他类继承。 抽象类中可以有非抽象方法。 抽象方法没有(也不能有)具体实现。 12345678910111213141516171819202122232425262728293031323334353637383940abstract class A{ // 抽象方法没有函数体,即具体实现 abstract protected function fun1(); abstract protected function fun2($num); // 普通方法,即非抽象方法 public function fun3() { echo __FUNCTION__; }}class B extends A{ // 子类必须定义抽象类中的所有抽象方法 public function fun1() { echo __FUNCTION__; } // 子类方法的访问控制,必须和抽象类中方法的访问控制一致,或更为宽松 // 参数必须一致,但子类可以定义父类方法中不存在的可选参数 public function fun2($num, $num2='0') { echo $num; }}// 抽象类不能被实例化$b=new B();$b->fun2(1);