多态那些事儿


父类引用指向子类的对象:

             通过父类的引用指向子类的对象实体,当调用方法时,实际执行的是子类重写父类的方法

(1)什么是向上转型? 

         子类引用的对象转换为父类类型称为向上转型。通俗地说就是将子类对象转为 父类对象。此处父类对象可以是接口 

 (2)什么是向下转型?

        如果一个方法的形参是父类类型,调用子类独有 的方法时会用instanceof 关键字判断传入的对象是否是某个子类对象,

       如果是的话,会把传入的值强制类型转换为子类

        function(Animal  animal){
                 if( animal instanceof Cat){
                       Cat cat = (Cat)animal

                  }

          }
(2) 什么是虚拟方法调用? 
         我们看到,通过父类的引用指向子类的对象实体,当调用方法时,实际执行的 是子类重写父类的方法 

(3)程序运行分为编译状态和运行状态。 

        对于多态性来说,编译时,"看左边",将此引用变量理解为父类的类型 

        运行时,"看右边",关注于真正对象的实体:子类的对象。那么执行的方法就是 子类重写的 

        子类对象的多态性,并不适用于属性

        子类对象的多态性,不适用于静态方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值