多态的概念

多态是面向对象编程的核心特性,涉及方法重载和运行时多态。它基于继承和封装,允许父类引用指向子类实例。在多态中,父类引用可以调用父类和被重写的方法,但无法访问子类特有的方法。静态方法只能继承,不能重写。类型转换包括自动的向上转换和需要强制的向下转换,而instanceof运算符用于检查对象是否符合特定类型。
摘要由CSDN通过智能技术生成

一、多态的概念

多态(Polymorphism )按字面的意思就是“多种状态”,是面向对象的序设计语言最核心的特征。

具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。

多态建立在继承和封装的基础上。

二、多态的分类

  • 编译时多态(设计时多态)∶方法重载。

  • 运行时多态:JAVA运行时系统根据调用该方法的实例的类型来决定选择调用哪个方法则被称为运行时多态。

三、多态的必要条件如下:

  • 满足继承关系

  • 父类引用指向子类引用

注意:

1、父类引用指向子类实例时,可以调用子类重写父类的方法以及直接继承父类的方法,无法调用子类特有的方法。

2、静态static方法属于特殊情况,静态方法只能继承,不能重写。调用的时候用谁的引用,则调用谁的版本。

四、多态中的向上类型转型和向下类型转型

向上类型转换(Upcast)将子类型转换为父类型:自动转换

  • 对于向上的类型转换,不需要显示指定,即不需要加上前面的小括号和父类类型名。

向下类型转换(Downcast )将父类型转换为子类型:强制转换

  • 父类型的引用必须指向转型的子类的对象,即指向谁才能转换成谁。不然运行的时候会抛出异常

instanceof运算符

用来解决引用对象的类型,避免类型转换的安全性问题,提高代码的强壮性。instanceof 运算符用来判断对象是否可满足某个特定类型实例特征。返回值为true/false。一般用于 if 语句中。

如果左边对象是右边类的实例则返回 true,否则返回 false。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值