es algo de lo que deberías darte cuenta, si miras el constructor de tu clase 
   
Código PHP:
Ver original- public function __construct()  
-       {   
-           $this->_dbh = new Apdater();  
-       } 
le estas diciendo que $this->_dbh va a ser un objeto de tipo adapter, este objeto lo único que tiene de PDO es un atributo llamado _dbh que representa al objeto PDO como tal, entonces, si te das cuenta lo que te coloco el amigo 
pateketrueke es que accedas al atributo $_dbh de la clase Adapter para que puedas acceder al objeto PDO, de hecho como es pribado no pedes acceder directamente a el entonces pudieras hacer algo como esto     
Código PHP:
Ver original- class Adapter  
- {  
-       private $_dbh;  
-       private $_dns;  
-       private $_username;  
-       private $_passwd;  
-      
-       public function __construct() {  
-   
-         $this->_dns = "mysql:host=localhost;dbname=php";  
-         $this->_username = "root";  
-         $this->_passwd = "";  
-         try {  
-             $this->_dbh = new PDO($this->_dns, $this->_username, $this->_passwd);  
-             $this->- _dbh ->exec("SET CHARACTER SET utf8");
 
-         } catch (PDOException $e) {  
-             echo "Error al conectar DB!: " . $e->getMessage() . "<br/>";  
-         } 
-     public function getDbh() { 
-         return $this->_dbh; 
-     }  
-       } 
y en tu clase User hacer esto    
Código PHP:
Ver original- class User {  
-   
-        private $_dbh;  
-        public function __construct()  
-       {   
-           $adapter = new Apdater();  
-           $this->_dbh = $adapter->getDbh(); 
-            
-       }  
-    
-         public function get_all() {  
-          
-         $sql = "SELECT * from usuarios";  
-         foreach ($this->_dbh->query($sql) as $rows) {  
-               
-            echo $rows['nombres'];  // esto es solo para probar.         
-           echo "<br/>";  
-         }  
-     } 
y ahí  si tu atributo dbh de la clase usuario sería la instancia de PDO, saludos