day10-多态

一、多态的基本理解与运用技巧

前提条件:继承 、重写父类方法 、父类引用指向子类对象

  1. 概念:多态是指父类引用指向子类对象。比如有Animal这个父类,下面有Dog子类,那么创建对象。Animal a =new Dog().

  2. 多态中成员变量的调用。

    • 首先要知道成员变量不涉及覆盖的说法,那么就很简单的知道了,父类调用成员变量,就是父类自己的,无论静态还是非静态的,都跟子类的没有关系。

  3. 多态中成员函数的调用 (基本是子类都覆盖了父类的方法,还有与父类同名字的成员变量,这时候很迷惑)

    • 非静态成员函数:编译时看左边,运行时看右边

      • 在编译时候:如果左边的父类没有该函数,那么就编译失败。

      • 在运行时候:运行的时候是找右边的子类对象中对应的该方法(因为子类覆盖了父类的同名方法)。

      简单说:编译看 = 的左边,运行看 = 的右边

    • 静态成员函数:静态方法其实不涉及多态的。直接用类名调用即可。所以编译和运行都只看左边。

      简单说:编译和运行都参考 = 的左边。

  4. 多态的好处:

    • 可以提高程序的扩展性,只需要在关注父类基本的通用功能,屏蔽各个子类之间的差异性,易于程序的维护和扩展。

    • 多态存在向上转型跟向下转型,当一个子类中有自己特有的方法时候,父类是无法调用到的,多态时候的父类引用指向子类对象时候也是无法之间调用的,但是可以通过向下转型成子类,在来调用,更加灵活。要用子类就转成子类对象,用父类就向上转成父类对象。

转载于:https://www.cnblogs.com/zhiai007/p/9367904.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值