Perfetto sono riuscito ad aggiustare il tutto in questo modo:

Codice PHP:
class Classe1 {
    
    protected 
$mysqli;
    
    public function 
__construct(){
        
$this->mysqli = new mysqli"localhost""root""""keybcorals" );
        
        if (
$this->mysqli->connect_errno) {
            echo 
"Failed to connect to MySQL: (" $this->mysqli->connect_errno ") " $this->mysqli->connect_error;
    }
    }
    
    public function 
eseguiQuery($sql){
   
        
$result $this->mysqli->query($sql);
        
        if (
$result->num_rows 0)
            return 
$result;
        else
            return 
false;
    }
    
    public function 
contaRighe($sql){
        
        
$result $this->mysqli->query($sql);
        
        return 
$result->num_rows;
    }
}

class 
Classe2 extends Classe1 {

    public function 
foo($sql){
       
        if (
$this->contaRighe($sql) == 1)
            echo 
"siii funziona anche in classe 2";
        else
            echo 
"non funziona";
    }
    

Adesso funziona benissimo, fà proprio quello che mi serve.
Una domanda:
perchè negli esempi su php.net, per verificare se una query è stata eseguita con successo o meno fà direttamente:
Codice PHP:
 if ($result
e non fà il conteggio sulle righe come faccio io?
Inoltre potete rispondere alla domanda dei post precedenti, perchè usare una variabile protected $mysqli, anzichè non fare direttamente $mysqli = new (... ).
Ci tengo a saperlo poichè parlando con amici, mi hanno detto che non si è mai visto l'utilizzo del this in quel modo ???