Java入门-多态

多态
概念
多态性的前提:
extends继承或者implements实现

多态:同一个行为,具有多种不同表现形式
一个对象拥有多种形态,这就是对象的多态性

定义格式

多态性的具体体现:父类指向子类对象(左侧父类的引用,指向了右侧子类的对象)

格式:
父类名称 对象名 = new 子类名称();
接口名称 对象名 = new 实现类名称();
多态中成员的使用特点
1.成员变量

多态中成员变量不能被覆盖/重写

访问成员变量的两种方式:
1.直接通过对象名称访问成员对象,看等号左边是谁,优先用谁,没有则向上找。“编译看左边,运行看左边”
2.间接通过成员方法访问:子类重写就是子,子类没有重写就是父。“编译看左边,运行看右边”
2.成员方法

在多态中,成员方法的访问规则:看new的是谁,就优先用谁,没有的话就向上找。“编译看左边,运行看右边

多态的优点

实际开发的过程中,父类类型作为方法形式参数,传递子类对象给方法,进行方法的调用,更能体现出多态的扩展性与便利。

引用类型转换
向上转型
对象的向上转型也就是多态的一般写法:
父类名称 对象名 = new 子类名称();

含义:右侧创建了一个子类对象,把它当作父类来看待去使用
注意事项:
1.向上转型一定是安全的(从小范围到大范围)
2.对象向上转型为父类,就无法调用子类原本特有的内容

Tips:
向上转型可以类比为自动类型转换


向下转型
对象的向下转型是一个【还原】的动作:
子类名称 对象名 = (子类名称)父类对象;

含义:将父类对象,【还原】成为本来的子类对象
注意事项:
1.必须保证对象本来创建的时候就是A对象,这样才能向下转型为A
2.对象本来创建的时候不是A对象,但是现在非要向下转型为A会报错:
	java.lang.ClassCastExceprion
	类转换异常
	
Tips:
向下转型可以类比为强制转换

用instanceof关键字进行类型判断

使用instanceof关键字可以知道一个父类的引用对象原本是哪个子类

格式:
对象 instanceof 类名称

会得到一个Boolean值类型的结果,也就能用来判断前面的对象能不能用来当作后面类型的实例
例如:animal instanceof Dog
转型的使用场景
将父类对象,【还原】成为本来的子类对象,进而去调用子类原本特有的内容
转型的异常
java.lang.ClassCastExceprion
	类转换异常
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值