本帖最后由 yinan9 于 2013-09-26 14:27:54 编辑

解决方案 »

  1.   

    这是最基本了吧
    A a=new B();
    用父类声明 得到的对象,只考虑调用父类的方法和属性。
    更多的时候,是因为通用性,易重构构,易维护。
    比如: A 有 公共方法 getN(),B继承或实现了A,那么b也有,C也继承或实现了A,A c = new C();c也有getN()方法,但是方法实现不同,这时,想要换成调用c的实现。只要把new B(),给 new C();就好了,其他不用动,如果采用spring ,只需要修改注入就好了,如果是采用B b=new B();这种你想想,会怎么样?
    另一种方式
    B b=new B();如果 b还有其他方法,比如getX(),getY(),这两个不是父类的,如果A a=new B(); 则a对象无法调用getX(),getY();除非强转。