Абстрактным называется класс, от которого нельзя создать объекты.
abstract class Database{ abstract public function connect(){} }
Абстрактные классы должны содержать, как минимум, один метод с ключевым словом abstract(). Другие методы могут быть и не абстрактными.
Если класс содержит абстрактный метод, то и сам класс должен быть объявлен абстрактным.
Абстрактные методы реализуются не внутри абстрактного класса, а внутри произвольного класса, расширяющего абстрактного родителя.
Если произвольный класс не реализует все абстрактные методы родительского класса, он тоже является абстрактным. Поэтому другой класс должен осуществить дальнейшее субклассирование.
К абстрактным методам предъявляются следующие требования: они не могут быть закрытыми (private), потому что они должны использоваться при наследовании; абстрактные методы не могут использоваться совместно с ключевым словом final, потому что они должны переопределяться.