Spring代理getBean()只能返回接口类,否则报错的疑点

ApplicationContext ctx=new FileSystemXmlApplicationContext("WebContent\WEB-INF\spring.xml");
Vt vtb=(Vt)ctx.getBean("vt");
Mr mrb=(Mr) ctx.getBean("mr");

两个类Mr和Vt是镜像的
public class Mr implements MindReader
{
private String thoughts;

public void interceptThoughts(String thoughts)
{System.out.println("hahaha");
this.thoughts=thoughts;}

public String getThoughts()
{return thoughts;}
}

public class Vt implements Thinker{

private String thoughts;
public void thinkOfSomething(String thoughts)
{
    this.thoughts=thoughts;}

public String getThoughts()
{return thoughts;}

}

而且它们的接口也是镜像的

我实际调用的时候
Vt vtb=(Vt)ctx.getBean("vt"); ClassCastException报错,查了下资料代理默认创建必须要用接口类,换成Thinker vtb=(Thinker)ctx.getBean("vt");
问题解决了。
但是Mr mrb=(Mr) ctx.getBean("mr");却没有任何异常可以正常使用,这是怎么回事?

你配置文件bean的怎么写的 id是什么

@Bean
public Mr mr()
{return new Mr();}

@Bean 
public Vt  vt()
{return new Vt();}

我也遇到这问题了,两个不同接口的实现类,一个生成代理对象,一个普通队像,mmp