20121029java基础-多态
何为多态?
java中上溯造型的存在,使一个对象既可以当做它自己的类型,也可以作为其父类的类型对待,这意味着子类对象可作为父类的对象使用;父类的对象变量可以指向子类对象。这样通过一个父类发出的方法调用,可能执行的是该方法在父类中的实现,也可能会在某个子类中的实现。这只能根据该变量运行时所指向的具体对象类型确定。这就是运行时多态。
关于多态,总结如下:
1、一个方法,参数是父类的引用,实际调用的时候,参数可以使用父类及所有子类的任意对象,换句话说
父类类型的引用,可以指向一个子类的对象,原因是:上溯造型,可以自动的自下而上地转换,但自上而下只能强转
比如有一个类A,类B,C都继承它
那么可以A a1 = new B();
A a2 = new C();
PS:不要忘记重写的概念,父类类型的引用指向子类对象后,只能调用被重写的方法,而不能调用子类特有的方法
2、不能把父类对象引用赋给子类对象,即单纯的父类对象不能强转为子类
如:A为父类,B继承A
A a=new A();
B b=(B)a; 错误
3、何时使用类的强制转换呢?当把子类对象new Sun()引用赋给父类对象father后,想把原先的子类对象还原,则要使用强制类型转换
如:Father father=new Sun();
Sun sun=(Sun)father;