<bean id="mobileInterface" class="Mobile"/>
注入的是实现了mobileInterface接口的子类,调用的当然是子类重写的dialUp方法

解决方案 »

  1.   

    所以说这样起名很不科学,给你了误导private MobileInterface mobileInterface;mobileInterface最好改为mobileinstance或mobile,表示注入的是MobileInterface的一个实现
      

  2.   

    这样在person 中调用makeCall的时候,实际上就是调用了mobile的makeCall方法了。
    这里说错
    在person中调用mobileInterface.dialUp(number)的时候,实际上是调用了mobile的dialUp(number)方法了
      

  3.   

    第一个问题:百度下“java 向上转型” 接口为父类 ,赋值的为子类,用父类调用,其实相当于还是调用子类的方法。
    第二个问题:通过java反射机制,获取到person的属性,同时根据配置文件中所配置的依赖类实例化给person的属性。
      

  4.   

    不使用反射的话,代码应该是这样的
     private MobileInterface mobileInterface = new Mobile();
    反射相当于帮你实现了new Mobile(); 原理是用java反射实现的 
      

  5.   

    bean  的配置是不是就是new一个类?
      

  6.   

    bean  的配置是不是就是new一个类?
      

  7.   

    bean  的配置是不是就是new一个类?
      

  8.   

    bean配置就是让容器要来管理一个Mobile的对象,spring容器会帮你来创建这个对象实例,不过spring 创建对象用的是反射来实现的,大概就是Class clazz = Class.forName("Mobile"); Object obj = clazz.newInstance(); 这个样子
      

  9.   


    可以这样说,但是远远不只有这么简单而已,他还维护bean与bean之间的关系,为了使程序变得灵活,spring推崇的是"面向接口编程"。