代码中的多态

代码中的多态:
*      其实就是对象本身存在不同的数据类型
*
* 多态的前提条件:
*      1.要继承关系或者实现关系的存在
*      2.必须要有方法的重写(备注:没有方法重写,多态的格式也不会报错,但是这样的多态没有任何的实际意义)
*      3.如果是继承关系:
*          父类的引用指向子类对象(格式:父new子)
*        如果是实现关系:
*          父接口的引用指向实现类对象(格式:父接口new实现类)
*
* 在多态的情况下,类中各成员的特点:
*      构造器
*      实例变量
*      实例方法
*  多态情况下实例方法的特点
*      在多态的情况下调用方法,先判断父类或者父接口中是否含有这个方法,
*      如果有,执行子类或者实现类重写后的方法;如果没有,编译报错
*
* 在多态情况构造器的特点:
*      构造器执行情况和以前构造器的使用一模一样,无需额外关注
* 引用数据类型之间的转换:
*      构成继承关系或者实现关系的父子之间的转换
*
* 分类:
*      自动类型转换(向上转型)
*          将子类类型的对象转换为父类类型的对象(其实就是多态的格式)
*      强制类型转换(向下转型)
*          将父类类型的对象转换为子类类型的对象
*
* 向下转型的格式
*      子类类型 对象名 = (子类类型)父类类型的对象;
*
*      基本数据类型的强制转换可能引发数据的溢出或者数据的损失
*
* 向下转型的注意事项:
*      将多态类型的对象进行强制类型转换的时候,可能发生ClassCastException(类型转换异常)
*
* ClassCastException解决方案:instanceof关键字
*      含义:判断指定的对象在内存中是否为指定类型或者指定类型的子类类型
*      格式:
*          对象 instanceof 类型
*              如果该对象在内存中是该类型或者该类型的子类类型时,返回true
*              如果该对象在内存中不是该类型或者该类型的子类类型时,返回false
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值