多态的定义

一、多态是什么?

  • 多态是同一个行为具有不同的表现形式或形态的能力。
  • 同一方法可以根据发送对象的不同而采用不同的行为方式。

例如:打印机分为黑白打印机和彩色打印机,在黑白打印机情况下打出来为黑白,在彩色打印机情况下打印出来为彩色。

多态就是事物的多种形态,一个对象在不同条件下所表现的不同形式。

二、多态的存在条件
多态存在的三个必要条件:

①继承或实现:在多态中必须存在有继承或实现关系的子类和父类。
②方法的重写:子类对父类中的某些方法进行重新定义(重写,使用@Override注解进行重写)。
③基类引用指向派生类对象,即父类引用指向子类对象,父类类型:指子类对象继承的父类类型,或实现的父接口类型。

三、多态的特点
 1、多态中,编译看左边(静态绑定),运行看右边(动态绑定)
             ①静态绑定:在编译阶段能够确定方法在内存什么位置的就叫静态绑定,当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译不通过;如果有,编译通过。

            ② 动态绑定:在运行阶段,父类对象类型在堆内存中创建的实际对象是子类对象,所以jvm会根据内存中真实的对象引用重新去给父类的方法表索引项赋值,这种通过程序运行过程动态创建对象方法表的定位方法的方式,一般称之为动态绑定。

 2、向上转型和向下转型
           ①向上转型: 子类引用的对象转换为父类类型称为向上转型。通俗地说就是是将子类对象看成父类对象。此处父类对象可以是接口。

           ②向下转型:与向上转型相对应的就是向下转型了。向下转型是把父类对象转为子类对象。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值