Java 之多态 与 上下转型

一.多态的概念                         二.多态的定义                三.上下转型

一.多态的概念

    1. 学生 与 人   学生是一个人  ,所以学生继承了人     这是继承

    2.学生 有学生形态 ,也有人的形态  这是多态

 二.多态的定义

     1.假如 Zi 类继承了Fu 类     或者  Zi类 实现了 Fu接口

         Fu obj = new Zi();       那么这样的形式称为多态      左父右子    即  obj 既拥有Fu 也有Zi 类的形态

     2.多态写法中的 成员变量 和 成员方法的使用 规则    

   成员变量 :编译看左边 运行看左边      成员方法 : 编译看左边 运行看右边   注意:左边没有则报错,右边没有则往上找,找不到报错

     3.多态的好处

 

三.上下转型

   1. 多态的写法就是向上转型      

        1.格式:  父类的名称 对象名 = new 子类的名称();                         2.含义: 创建一个子类把他当作父类来看待使用

        3.注意 :  向上选型一定要是安全的,从小范围向大范围                 类似于  double num = 100;  自动类型转换

   2.向下转型

       1.当  Animal  animal  = new Cat(); 向上转完时 有一个弊端  无法使用调用 子类原有的内容,比如成员变量

       2.所以需要向下转型   Cat   cat = ( Cat)  animal ;       把这个animal 强制还原 

       3.格式:    子类的名称 对象名 = ( 子类名称) 父类对象;               类似于  int  num = (int) 10.0;  

       4.注意: 向上转的时候本来是猫,才可以转回猫    如果 Dog cat = ( Dog )  animal ;  就报错  类似int  num = (int) 10.5;  精度泄露

        5.所以用   instanceof来判断 返回值boolean类型              if(  animal  instancof  Cat ){ Cat   cat = ( Cat)  animal ;  }

      向下转型  就像数据 强转一样  idea 会帮你优化  

      Jianpan jianpan = (Jianpan) usb;

      jianpan.qiaoda();                                              =                    ((Jianpan) usb).qiaoda();

     

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值