黑马程序员Java----多态

来源:互联网 发布:淘宝联盟数据采集 编辑:程序博客网 时间:2024/06/17 06:40

多态:一个父类的引用类型变量它既可以指向父类对象,也可以指向子类子类对象,他可以根据当前时刻指向的不同,自动调用不同的方法。

例如:B是AP的子类,
AP ab = new B();//ab是父类AP引用变量,他存储了新new出来的类B的地址,存储着这个B类的对象的地址。

package cn.itheima.day02;public class PolyTest {    /**此程序证明了java多态     * 一个父类的引用类型变量它既可以指向父类对象,也可以指向子类子类对象,他可以根据当前时刻指向的不同,自动调用不同的方法,这就是多态     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        AP aa = new AP();        System.out.println(aa.getClass());        B bb = new B();        AP ab = new B();//ab是父类AP引用变量,他存储了新new出来的类B的地址,存储着这个B类的对象的地址。        aa = bb;//将子类的bb地址赋给了父类aa,把bb当做aa来看,aa可以使用bb中的方法,aa保存了bb地址,aa就代表了bb对象        aa.f();//这样aa就可以调用f方法,子类可以当做父类        aa.g();//既可以调用子类方法,也可以调用父类方法        bb = (B) aa;//父类无法转换成子类        bb.f();        System.out.println(aa.getClass());        System.out.println(bb.getClass());    }}class AP{    public void f(){        System.out.println("AAAA");    }    public void g(){        System.out.println("CCCC");    }}class B extends AP{    public void f(){        System.out.println("BBBB");    }}/*运行结果:class cn.itheima.day02.APBBBBCCCCBBBBclass cn.itheima.day02.Bclass cn.itheima.day02.B*/
0 0