Lo correcto es como comentas con interfaces para simular la herencia múltiple. En Java no se permite más que la herencia simple.
No me gusta recomendar esto, pero si no quedara otra (quiere decir que si no tienes tiempo de refactorizar el código), puedes instanciar en el constructor del "supuesto hijo" una variable global que sea el "supuesto padre", y con ello "sobrescribir" los métodos que necesites del "supuesto padre" en el "supuesto hijo" con una invocación directa de los métodos a heredar y paso de variables. Eso sí, tienes que controlar en el "supuesto hijo" todas las variables que requiera el "supuesto padre" con llamadas directas al objeto de la clase del "supuesto padre"; por lo que se crea un acoplamiento importante con la dependencia del código del "supuesto padre".