JAVA——多态性

理解多态性

可以理解为一个事物的多种形态。

何为多态性

Java引用变量的类型:编译时类型和运行时类型,编译时和运行时类型不一致就会产生产生多态。
对象的多态性:父类的引用指向子类的对象(或子类的对象赋给父类的引用)。

方法与对象的多态性
  • 方法的多态性:重载与覆写
    重载:同一个方法名,根据不同的参数类型及个数可以完成不同的功能
    覆写:同一个方法,根据实例化的子类对象不同,所完成的功能也不同
  • 对象的多态性:父子类对象的转换
    向上转型:子类对象变为父类对象,格式:父类 父类对象 = 子类实例,自动转换
    向下转型:父类对象变为子类对象,格式:子类 子类对象 = (子类) 父类实例,强制转换
    向下转型的前提条件:必须发生向上转型后才可以放生向下转型
instanceof关键字
  • a instanceof A:判断对象a是否是类A的实例。如果是,返回true;如果不是,返回false
  • 使用情景:为了避免在向下转型时出现ClassCastException的异常,在转型之前,先进行instanceof判断,一旦返回true,就进行向下转型;如果返回false,不进行向下转型。
  • 如果a instanceof A返回true,a instanceof B也返回true,则类B是类A的父类。
多态的作用
  1. 向上转型:其目的是参数的统一,但是向上转型中,通过子类实例化后的父类对象所能调用的方法只能是父类中定义过的方法。
  2. 向下转型:其目的是父类对象要调用实例化它的子类中的特殊方法,但是向下转型是需要强制转换的,这样的操作容易带来安全隐患
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值