多态

 

  1. 什么是多态?
    1. Programmer english = new English();

编译的类型                     运行时的类型

    1. 创建一个子类对象,赋给父类的引用变量,通过父类的引用调用方法是,如果子类重写了,调用的是子类的
    2. 子类不同,输出结果不同,多种形态
  1. 多态的好处
    1. 减少了重载方法的数量
    2. 符合开闭原则,即使增加子类,不需要提供额外的方法
  2. 多态的前提
    1. 继承是多态的前提
    2. 子类重写父类的方法
    3. 将子类的对象赋给父类的引用,调用重写的方法

调用重写的方法即可多态

  1. 多态的使用场合
    1. 使用父类做方法的形参,实参可以是任意的子类类型(最重要的场合)
    2. 使用父类做方法的返回值类型,实际返回的可以是任意子类的对象
  2. 你见过的多态
    1. Public Boolean equals(Object obj){}
    2. Object做方法的形参,实参可以为任意类型
  3. 向上转型upcasting
    1. 子类转换为父类
    2. 代码
      1. Programmer pro= new English();//自动转换的 子类对象->父类引用
      2. pro.work();
      3. pro.eat();
      4. //        pro.raceHorse();——向上转换,不好使
    3. 所得结论
      1. 父类引用=子类对象,自动转换
      2. 调用的子类继承的方法
      3. 调用的子类重写的方法
      4. 不调用子类特有的方法
    4. 理解向上转型
      1. 招聘程序员,来个英国国籍的程序员,满足要求,不需要特别声明
      2. 不管是哪个国籍的,写的代码都是Java代码
      3. 中午休息了,大家都去食堂开始吃饭了,原型毕露
      4. 老板随便招一个员工,说我们赛马吧,不可以;因为对方可能是中国或其他国家的人,不会赛马。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值