Cita:  
					Iniciado por hhs 
  Claro que se puede:
   
Código PHP:
Ver originalclass A {
    public function ejecutar(){
        echo 'Instanciado dentro de B';
    }
}
 
class B {
 
    private $a;
 
    public function __construct(){
        $this->a = new A();
    }
 
    public function ejecutarA(){
        $this->a->ejecutar();
    }
}
  
Puedes instanciar en el constructor o los métodos de la clase. Pero generalmente no se aconseja hacerlo, ya que esta practica oculta dependencias y rompe con la encapsulación. Además de que hay otras formas de manejar la creación de objetos y reducir el acoplamiento
     tu me dices  que esta es una forma  
class B {
     private $a;
     public function __construct(){
        $this->a = new A();
    }
     public function ejecutarA(){
        $this->a->ejecutar();
    }
} 
si te fijas llamo a la clase asi    $this->a = new A();
pero porque, si es tan fácil llamar a una clase adentro de un método entonces
no necesito esto de herencia
public class Herencia extends ClaseHeredada{ 
}
según entiendo, esto es lo que me confunde, ya que podemos estar llamandolas desde cualquier método sin necesitar de la palabra  extends  o etc  en la clase