多态 上转型 下转型

多态:面向对象的特征之一。

向上造型:父类型的变量引用子类型的对象

    (1)父类型的变量指向不同的子类型对象,调用的功能有不同的实现。

         eg:Animal a = new Dog();

                 a.noise();//叫

                 a = new Cat();

                 a.noise();//叫

    (2)不同的父类型变量指向同一个对象有不同的功能。

        eg:ZhengYangDoor a = new ZhengYangDoor();

             a.theftproof();//防盗

             a.openDoor();//开门

             InterA ia = a;

             ia.thefiproof();

向下造型:

    将父类的变量赋值给子类或者其他父类型的变量。

    Animal a = new Dog();

    Dog dog = (Dog)a;

    dog.吃骨头();

    Cat cat = (Cat)a;//编译通过,运行期间,类型转换错误(狗和猫不是一种类型,仅仅是同一个父类而已)

    cat.捕捉老鼠();

    运行期间有可能会发生类型转换异常:java.lang.ClassCastException

为了避免出现错误:我们需要使用关键字instanceof来判断对象是不是要转换成的类型

if(a instanceOf Cat){

    Cat cat = (Cat)a;

}

    

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值