第3个回答 2011-11-06
第一个问题是纯概念性的,baidu下继承,多态,只是个概念,不理解作用也不大
第二个Aa,Ab,Ac继承A
那么就有A a=new Aa(),A a=new Ab(),A a=new Ac()就是所说的父类引用指向子类对象,因为程序里有时候需要根据实际运行情况、参数决定去指向哪一个具体的子类(程序员并不能知道运行时使用者具体的选择),由子类里重写的方法去执行处理过程。比如A类是父类,有函数print(),Aa里重写print(),输出了Aa,Ab里重写print(),输出了Ab,Ac里重写print(),输出了Ac,这里可能要了解下mvc模式,前面这样的A,Aa,Ab,Ac可能就是m层,然后编写c层代码是会根据v层传回的参数决定A a=new A*,也就是父类引用a具体指向哪个子类的对象,然后调用a的print()去执行处理,将结果传回给v层去显示。可能你有疑问是干吗要用继承,我直接根据传回的参数是哪个,就实例化哪个子类就执行哪个子类的方法就行了,不需要用父类引用指向子类对象这样的方法。但是实际情况是,在c层里对象是传递的,可能实例化是在这个类里,调用就跑到另一个类里面去了,实例化的类知道a是Aa,还是Ab,还是Ac,但是调用的类呢,这时候调用的类就不需要关心是哪个了,因为知道a是A的引用,有个print()是需要调用的就行了。这个可能解释的有点乱,等你了解mvc时结合一下就可以发现区别了本回答被提问者采纳