第九天:多态

Java多态的实现与类型转换

1.多态:
 作用:功能的扩展
 场景:题目中一定有两条业务线,一条线叫继承,继承线是第二条线中方法的参数/返回值类型!
 引入:动物园 动物父类,动物子类,饲养员类
 定义:(字面意思:一组对象在做同一行为的时候,有多种表现形态 就叫多态)
      (动态绑定:开发者在编写阶段,让父类做参数(减少子类做参数的方法个数)
         在程序运行阶段,又会根据传入的实际参数类型 自动绑定对应的执行方法。这个就叫动态绑定)
 多态的实现条件有3个: 继承, 重写, 声明父类new子类      Animal a=new Dog();


2. 声明父类new子类   VS  声明子类new子类

  声明父类new子类   得到的对象,只能调用子类继承的,或者子类重写的资源;
                   不可以调用子类特有的。

  声明子类new子类  可以调用继承的,重写的,以及子类特有的。

3. 引用数据类型之间的类型转换:声明父类new子类
          父类
           |
          子类

         声明父类new子类 ,是子类型 转 父类型 。发生的是向上类型转换,[是自动进行的];
        ====》但是有问题:产生的对象,只能调用继承/重写父类的资源,不能调用子类特有的资源;

        【问题:如果 仍然想让  声明父类new子类 产生的对象,可以调用子类的资源怎么办?】
         解决办法:

         对 该对象 做向下类型转换; [强制进行] ((子类类型)对象名).特有的资源了。
         ((Cat)animal).getName();

         【问题:有可能发生类型转换错误】
         解决办法:
         使用关键字      if(animal instanceof Elephant){
                            Elephant e= (Elephant)animal;
                        }else if(animal instanceof Cat){
                            Cat e= (Cat)animal;
                        }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值