比如:B类继承A类
那么:
   1.  A a=new A();
   2.  A a=new B();
   3.  B a=new B();
这三种实例的区别是什么?

解决方案 »

  1.   

    区别大了去了呀,兄弟.1是创建了A的实例;2,3都是创建了B的实例.我们更倾向于用父类去new一个子类.再好好去理解接口吧.
      

  2.   

    A a =new B();
    在实际应用中用的比较多。
    因为一般来说,一个对象实例创建完就定死了,比如B,如果程序里的变量写b的话,万一以后发生变化就要改代码了。那么事先就不写死b,而是写父类a,那么以后用到a的地方,用b实例,或者其他继承自A的实例都可以取代,不用改实例名了。说玄乎一点,也就体现了面向对象“多态”的特性。
      

  3.   

    1  new出来的是A类型
    2  new出来的是B类型
    3  new出来的是B类型
    然后如引用所说,主要是2可以使用多态,1,3不能。这是最关键的,至于多态有什么作用,以后会慢慢明白
      

  4.   

    第一个的纯A类的对象
    第三个是纯B类的对象
    第二个仍是A类的对象,但由于是用B来构造的,只能调用从A处继承的方法,B自己的方法是不能调用的