PHP: erreur Fatale: Impossible d'instancier une classe abstraite

J'ai un résumé de la base de données de classe nommé:

abstract class database {
  protected $value;
}

J'ai créé une autre classe abstraite

abstract class my_database extends database {
  public function set_value($value) {
    $this->value = $value;
  }
}

Quand j'essaie de l'utiliser:

$my_db = new my_database();

J'obtiens l'erreur:

Fatal error: Cannot instantiate abstract class my_database in ...

Ce que j'essaie de faire c'est: La classe abstraite de base de données est protégée $valeur et je voudrais créer une classe wrapper, pour être en mesure de changer le protégé de la valeur (temporairement).

Comment puis-je le faire?

EDIT1: malheureusement, plus tôt, quand j'ai essayé sans abstrait my_database, j'ai eu les erreurs:

- abstract methods and must therefore be declared abstract or implemented
- Abstract function cannot contain body

EDIT2:
Après avoir sorti le mot abstrait complètement de my_database, j'ai eu l'erreur suivante:

Fatal error: Class my_database contient 32 méthodes abstraites et doit
donc être déclarée abstract ou mettre en œuvre les autres méthodes

Comment puis-je résoudre ce problème?

Vous ne pouvez pas appeler new (abstract class). Dans ce cas d'utilisation, my_database ne doit pas être abstraite.
Les Classes définies comme abstraite ne peut pas être instanciée php.net/manual/en/language.oop5.abstract.php
Les classes abstraites ne peut pas être instanciée, mais ils peuvent être sous-classé.
Lorsque vous avez essayé sans abstrait sur my_database vous n'avez, par inadvertance, a ajouté résumé de votre public function set_value, donc votre message d'erreur. Nouvelle tentative.

OriginalL'auteur klor | 2017-05-27