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

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

例如: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.AP
BBBB
CCCC
BBBB
class cn.itheima.day02.B
class cn.itheima.day02.B
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值