抽象方法一定是在抽象类中,抽象类不一定有抽象方法。继承了抽象类,一定要重写抽象类的抽象方法,而且与抽象方法的参数个数一样,否则继承的子类会报错。
抽象类( abstract_class.php):
<?php
//abstract抽象类Validation_abstract
abstract class Validation_abstract{
//abstract抽象方法 validate
abstract function validate($value);
}
?>
继承抽象类(Age_class.php):
<?php
require_once("abstract_class.php");
//Age类继承了抽象类Validation_abstract,所以一定要重写抽象类的抽象方法validate
class Age extends Validation_abstract{
protected $min;
protected $max;
//$arr的输入格式为一个数组,如['min'=>19,'max'=>29]
function __construct($arr){
$this->min = $arr["min"];
$this->max = $arr["max"];
}
//如果$value在min和max的范围中,返回true
function validate($value){
if($value>=$this->min && $value<=$this->max){
return true;
}else{
return false;
}
}
}
?>