Claro, la idea es que uses el type hinting con la clase base para que tu clase funcione de la manera que esta diseñada.
No, la herencia es cuando hay una relación de parentezco entre las dos clases, no solo se hereda por heredar (Lee sobre el principio de Liskov).
Ahora sí tu segunda clase solo va a usar un select para algo, no es correcto que ocupes la herencia, si no más bien tu segunda clase necesita de esa dependencia:
Código PHP:
Ver originalclass MyClass {
private $db;
public function setDb(Db $db)
{
$this->db = $db;
return $this;
}
public function getDb()
{
return $this->db;
}
public function makeFoo()
{
$result = $this->getDb()->select('foo');
}
}
Ya que como tal no hay una relación de herencia, si no más bien de uso, lee sobre Dependency Injection para que entiendas como debes de relacionar tus clases.
Saludos.