接口ISchool
实现类StudentISchool i = new Student()

Student s =  new Student()这个i与s有区别么,用接口变量i指向一个实现类对象,这个在什么情况下会用到?直接用s不更好么???

解决方案 »

  1.   

    这个在spring的时候会用到很多!!注入的时候会体现他的好处
      

  2.   

    多态问题.. 你去查java多态就知道了..  类似于父类引用指向子类对象。
      

  3.   

    这个叫做面向接口编程,好处是使得程序的扩展性增强了,不必针对具体的类进行编程,而是针对接口进行编程以你的例子来说吧,比如你考大学,大学就是个接口叫做:ISchool,,现在ISchool进行招生,条件是达到它设定的分数线(也就是必须满足ISchool这个接口)才能进,每个学生都是一个个对象,学生这时候学生就拿自己的实现类Student来与ISchool进行匹配,如果满足ISchool这个接口,那么就说Student面向的是ISchool接口
    如果直接Student s = new Student()当然也可以,但是不利于程序的扩展,不符合设计模式的思想