时间:2021-07-01 10:21:17 帮助过:2人阅读
注意:
继承一个抽象类的时候,子类必须定义父类中的所有抽象方法;
另外,这些方法的访问控制必须和父类中一样(或者更为宽松)。
方法的调用方式必须匹配,即类型和所需参数数量必须一致。
例:
<?phpabstract class AbstractClass{ // 我们的抽象方法仅需要定义需要的参数 abstract protected function prefixName($name);}class ConcreteClass extends AbstractClass{ // 我们的子类可以定义父类签名中不存在的可选参数 // 该访问控制只能是公有的(public)或受保护(protected)的 public function prefixName($name, $separator = ".") { if ($name == "Pacman") { $prefix = "Mr"; } elseif ($name == "Pacwoman") { $prefix = "Mrs"; } else { $prefix = ""; } return "{$prefix}{$separator} {$name}"; } }$class = new ConcreteClass;echo $class->prefixName("Pacman"), "\n";echo $class->prefixName("Pacwoman"), "\n";?>
结果:
Mr. Pacman Mrs. Pacwoman
分析:
虽然子类定义了一个可选参数,而父类抽象方法的声明里没有,但和注意中的第三点并无冲突
相关推荐:
php抽象类的实现方法详解
php抽象类、接口的区别和选择实例详解
php抽象类特性实例详解
以上就是php抽象类详解的详细内容,更多请关注Gxl网其它相关文章!