Grazie mille delle risposte.

Emulman la classe che hai fatto tu ci avevo anche pensato, ma questo non vorrebbe dire dover fare per forza una di queste due cose?:

1) Ogniqualvolta ho bisogno di interagire con il database devo creare una funzione all'interno della classe "database". Come soluzione mi pare improbabile da gestire.
2) Creare un nuovo oggetto mysqli, per ogni classe i cui metodi interagiscono il database. Dunque aprendo e chiudendo la connessione con il database per ogni classe/metodo.

Cercavo qualcosa di più comodo, del tipo che io definisco l'oggetto della classe mysqli una volta all'inizio della pagina head.php comune a tutto il sito (quindi una connessione al database) e uso lo stesso in ogni classe. Es.

Codice PHP:
file:head.php
<?php 

  
require_once('include/config.php);

  $mysqli = new mysqli($dbhost,$dbuser,$dbpass,$dbname);

  require_once('
include/user.class.php); 
  
/* In questa classe uso liberamente l'oggetto $mysqli 
      richiamando i metodi della classe mysqli con $mysqli->metodo;
  */  
    
   //includo il resto della pagina in base al contenuto richiesto...                                  
?>
In un ipotetico file foot.php poi richiamo il metodo $mysqli->close() per terminare la connessione.

Posso anche pensare di creare un oggeto mysqli, quindi aprire e chiudere una nuova connessione, in ogni classe che definisco che ne necessiti, ma questo non appesantirebbe il tutto?

Comunque in poche parole la mia domanda è: come richiamo i metodi di una classe in un altra classe? devo per forza usare l'ereditarietà?