Определение упомянуто выше, сейчас я попытаюсь привести пример:
«абстрактный» гарантирует, что вы следуете определенной логике, например, материал билета ВСЕГДА "бумажный", или кредитная карта всегда должна иметь "код".
Это важно, если вы работаете в большой компании со строгой стандартизацией или если вы хотите «заставить» своих разработчиков следовать определенной структуре, чтобы их код не оказался в беспорядке.
abstract class ticket{
public function material()
{
return 'Paper';
}
}
abstract class creditcard{
public function material()
{
return 'Plastic';
}
abstract function setCode(); // the ";" semicolon is important otherwise it will cause an error
}
class key extends ticket{
public function getMaterial()
{
return parent::material();
}
}
class anotherKey extends creditcard{
public function setCode($code)
{
$this->code = $code;
}
}
Если мы не определим метод "setCode", синтаксический анализатор вернет ошибку "new anotherKey
"