Spring: ¿Por qué autowire la interfaz y no la clase implementada?

Ejemplo

interface IA
{
  public void someFunction();
}

@Resource(name="b")
class B implements IA
{
  public void someFunction()
  {
    //busy code block
  }
  public void someBfunc()
  {
     //doing b things
  }
}

@Resource(name="c")
class C implements IA
{
  public void someFunction()
  {
    //busy code block
  }
  public void someCfunc()
  {
     //doing C things
  }
}

class MyRunner
{

  @Autowire
  @Qualifier("b") 
  IA worker;

  worker.someFunction();
}

¿Puede alguien explicarme esto?

¿Cómo sabe la primavera qué tipo polimórfico usar?Lo necesito@Qualifier o@Resource?¿Por qué autowire la interfaz y no la clase implementada?

Respuestas a la pregunta(2)

Su respuesta a la pregunta