Hola
Creo que estas "completamente confundido", ya que no debes de heredar de esa manera, para que cumplas bien los objetivos de la OOP necesitas "separar responsabilidades" pero eso no quiere decir que vas a heredar por heredar, minimo necesitas usar el principio de sustitución de liskov para que tenga sentido la herencia.
http://sebys.com.ar/2010/07/07/slp-p...ion-de-liskov/
Esta bien que la clase usuario sea encargada de tener esos metodos, sin embargo eso no esta peleado con que dentro de esa clase los metodos invoquen otros objetos responsables de por ejemplo: la persistencia de los datos, validaciones y demás.