时间: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网其它相关文章!