Priemro que esste foro es de PHP, no de PHP OOP
Una clase abstracta se definde de la siguiente manera (muy rapidamente y salteandome varias cosas):
Código PHP:
abstract class Banco{
public $nombres;
public $saldo;
public $limite;
public function __construct(){}
public function depositar($cuanto){
$this->saldo += $cuanto;
}
public function retirar($cuanto){
$this->saldo -= $cuanto;
}
}
class CuentaCorriente extends Banco{
public $descubierto;
public function __construct(){
parent::__construct();
$this->descubierto = 500;
}
}
Una clase abstracta es una clase de la cual no se puede instanciar un objeto directamente, es creada para ser heredada.
Fijate en el ejemplo que te puse, que de nada te serviria tener un objeto "Banco" por ahi dando vueltas, no tendria mucho sentido, en cambio si una cuenta corriente... Ademas, sireva para la reutilizacion de codigo (eso por la herencia), si tuviera otra clase "CajaDeAhorro" tambien heredaria de Banco
Tambien puedes tener metodos abstractos, por ejemplo en las interfaces, o dentro de alguna clase. Los cuales no llevaran su definicion en ese momento, sino que se les agregara luego, cuando sean implementados o heredados...