日期:2014-05-20  浏览次数:20690 次

关于 new 的问题
本人初学,希望得到指导!!谢谢
昨天看见的一个例子很不理解,

A   c=new   B();

  A是一个类,B是另外一个类,c是也对象。
我觉得是要象不可能的啊。
为什么声明c是A的对象,后面又用了另一个类来分配内存空间。


   


------解决方案--------------------
这是 多态

父类或者 父接口的引用 实际指向 子类的对象


比如:

水果 c = new 苹果();

自己好好想想

------解决方案--------------------
A c = new B();
意思是:
声明了一个名为c的对象,它的类型是A,该对象是调用了B的构造方法 ( new B() ) 来创建它的.
在这里A与B要有一定的关系,如A是B的基类,或A是接口,B是A的实现类等
------解决方案--------------------
这里的类B是类A的实现类
或者说B应该是类A的子类
就像C++中的指针
父类的指针是可以指向子类的对象的
这里变成了引用而已
------解决方案--------------------
B继承于A,这种方法可以用A的一个对象动态执行其子类重写的方法