Java基础——对象多态性

Java基础——对象多态性

一、定义

 对象多态性:子类与父类之间的向上/向下转型。

二、对象多态性的分类

 对象多态性有两种分类,向上转型(90%)和向下转型(1%)
  1、向上转型:用于参数统一化(形参为父类的引用,实参为子类的对象,最终调用的方法还是看new后面的对象)
   父类 父类引用 = new 子类对象();
   子类对象(new出来的是对象)给了父类引用(父类引用=子类对象)
 2、向下转型:当父类引用需要调用子类扩充方法时,才需要向下转型,一般不用
   父类 父类引用 = new 子类();
   子类 子类引用 = (子类)父类引用
   要发生向下转型,必须先发生向上转型(认爹), 只有先向上转型,再向下转型才能成功,否则会报运行时异常:ClassCastException(类型转换异常)
在这里插入图片描述

三、instanceof关键字的使用

 对象(obj)instanceof类(Class):表示该对象是否能对应类的一个实例所引用(返回true/false)
 实际上是:看obj是否是Class的对象或其子类,当obj为Class的对象或者是其直接/间接子类,或者是其接口的实现类,结果就位true,否则先向下转型也可变为true(存在一个认爹的过程)。
在这里插入图片描述
  子类对象是父类的一个实例——>true
  父类对象不是子类的一个实例——>false

四、向上向下转型与instanceof的关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值