本帖最后由 杨震 于 2012-9-11 18:53 编辑
什么是多态,就是父类变量引用子类对象
由于你调用方法的时候,只能基于变量调用,由于变量是父类型的,也就是说只能调用父类所拥有的方法,尽管引用的是个子类对象(对父类进行了扩展),但是其中扩展的特定方法不能调用,因为方法调用是基于变量类型的,而不是基于引用的对象类型的,你变量是父类型的,调用的方法也必须是父类里面有的,这样子类的特定方法就得不到调用
如果List list = new ArrayList();
当父list.方法的时候,这个方法只能是List接口里面有的,没有的就不能用,这样的话在ArrayList里面扩展但是List接口里面没有的方法就得不到调用了.
如果想调用子类特定方法,只能将list定义成ArrayList类型的,即ArrayList list = new ArrayList,但这就不是多态了,因为多态是父类引用子类对象.
|