Primavera: Por que nós autowire a interface e não a classe implementada?

Exemplo

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();
}

Alguém pode explicar isso para mim.

Como a mola sabe qual tipo polimórfico usar.Eu preciso@Qualifier ou@Resource?Por que nós autowire a interface e não a classe implementada?

questionAnswers(2)

yourAnswerToTheQuestion