2.15.PHP7.1 教程- -【PHP 抽象类、抽象方法】

#目录
博客目录

http://www.foxwho.com/article/24

CSDN目录

http://blog.csdn.net/fenglailea/article/details/60330101

风.fox
#PHP 抽象类和抽象方法
抽象类和抽象方法用abstract关键词

抽象类不能实例化

继承一个抽象类的时

1.子类必须定义父类中的所有抽象方法
2.这些方法的访问控制必须和父类中一样(或者更为宽松)
3.方法的调用方式必须匹配,即类型和所需参数数量必须一致

abstract class ImportExportAbstract
{
    // 强制要求子类定义这些方法
    abstract protected function format(array $file=[],array $ext=[]);
    abstract protected function save();

    // 普通方法(非抽象方法)
    public function process(array $file=[], array $ext = []) {
        $ret = $this->format($file, $ext);
        if ($ret["ret"] != 1) {
            return $ret;
        }
        return $this->save();
    }
}
class OrderImport extends  ImportExportAbstract
{
	protected function format(array $file=[],array $ext=[])
	{
		return ["ret"=>1,"msg"=>"Ok"];
	}
	protected function save()
	{
		return ["ret"=>1,"msg"=>"Ok"];
	}
}
//实例化
$OrderImport=new OrderImport();
$ret=$OrderImport->process($_FILE);
print_r($ret);

参考

http://php.net/manual/zh/language.oop5.abstract.php