"любой класс, содержащий хотя бы один абстрактный метод, сам является абстрактным. Действительно, если кто-нибудь создаст объект этого класса и случайно вызовет абстрактный метод, то получит ошибку."
По идее же не поучится создать объект т.к класс абстрактный (если указан модификатор класса abstract).
abstract class Cached extends Page
{
// Формируем уникальный ключ для хранилища
abstract public function id(mixed $name) : string;
}
будет ошибка:
PHP Fatal error: Uncaught Error: Cannot instantiate abstract class Cached in
Если же не указать что он абстрактный вот так:
class Cached extends Page
{
// Формируем уникальный ключ для хранилища
abstract public function id(mixed $name) : string;
}
будет ошибка:
Fatal error: Class Cached contains 1 abstract method and must therefore be declared abstract or implement the remaining methods
То есть дело до вызова метода вообще не дойдет, в обоих случаях.
Абстрактные классы и методы
"любой класс, содержащий хотя бы один абстрактный метод, сам является абстрактным. Действительно, если кто-нибудь создаст объект этого класса и случайно вызовет абстрактный метод, то получит ошибку."
По идее же не поучится создать объект т.к класс абстрактный (если указан модификатор класса abstract).
будет ошибка:
PHP Fatal error: Uncaught Error: Cannot instantiate abstract class Cached in
Если же не указать что он абстрактный вот так:
будет ошибка:
Fatal error: Class Cached contains 1 abstract method and must therefore be declared abstract or implement the remaining methods
То есть дело до вызова метода вообще не дойдет, в обоих случаях.